Oracle Smart Flash 新特性性能测试说明
Oracle Smart Flash 新特性性能測試說明
- 1.1測試之前的工作
- 1.1.1 Oracle Smart Cache簡介
- 1.1.2 Oacle Smart Cache測試方向
- 1.1.3 Oacle Smart Cache 測試環境
- 1.1.4 Oracle Smart Cache測試實現辦法
- 1.1.4.1 準備工作
- 1.4.1.2 設置數據庫相關參數
- 1.1.5 Oracle Smart Cache 測試關鍵點
- 1.1.6 Oracle Smart Cache 測試標準點
- 1.2 測試過程
- 1.2.1 Oracle Smart Cache 開啟
- 1.2.2 Oracle Smart Cache 關閉
- 1.3 測試結果數據整合
- 1.3.1 Sql語句執行時間
- 1.3.2 Sql語句執行效率
- 1.3.3 系統資源情況
1.1測試之前的工作
1.1.1 Oracle Smart Cache簡介
在Oracle11gR2及以后版本,Oracle提供了設置FLASH CACHE的功能,提升數據訪問性能,該特性尤其適用于db file <sequential/ scattered/ paralle> read 等相關event比較嚴重的系統中。目前FLASH CACHE功能只能兼容Oracle enterprise linux、oracle solaris版本系統。
1.1.2 Oacle Smart Cache測試方向
Smart Cache允許緩存的設備可以是ASM裸設備或者閃存卡SSD做成文件系統。本文中主要采用單機實例和裸設備緩存位置的測試方法,規定一定的測試參數制造壓力,比較其在啟用/未啟用特性下的性能表現。
1.1.3 Oacle Smart Cache 測試環境
1.1.4 Oracle Smart Cache測試實現辦法
1.1.4.1 準備工作
- 由于Oracle的Smart flash cache功能 在Oracle enterprise linux 平臺上對oracle database軟件打了閃存補丁后可以使用,本次采用的系統版本為Oracle enterprise linux 6.9。在Oracle 11G中Smart flash cache初次被引入,它所支持的FLASH_CACHE_FILE閃存設備僅為一個,12C中最大支持16個。
- 為模擬實驗中硬盤性能差異性,我們將采用NFS存儲作為一般數據文件存放位置。準備倆臺虛擬機如下。
- 主機1使用本地IDE+SSD+固態驅動器盤作為緩存設備,實驗中表單數據存放在NFS存儲中,倆塊硬盤經過簡單的DD測試性能表現如下。
1.4.1.2 設置數據庫相關參數
db_flash_cache_file=‘/dev/raw/raw1’ scope=spfile; db_flash_cache_size=2g scope=spfile;設置Smart Cache設備并指定大小。
create tablespace nfs_test datafile'/oradata_nfs/nfs_test.dbf' size 1g ; alter user ckpt_lu default tablespace nfs_test; create table ckpt_lu.test_table as select * from dba_objects;創建測試表存放在NFS_TEST表空間上,創建表單數據量為1600M。
alter system set event='10949 trace name context forever, level 1' scope=spfile; alter system set "_very_large_object_threshold"=1600 scope=spfile;關閉直接路徑讀,設置_very_large_object_threshold參數為表單大小。
alter system set sga_max_target=800m scope=spfile; alter system set sga_target=800m scope=spfile;設置SGA大小為表單的一半,制造系統壓力。
1.1.5 Oracle Smart Cache 測試關鍵點
- 緩存設備使用SSD+IDE高速盤,數據盤采用NFS存儲,經簡單測試寫入性能相差6倍。
- 表單數據存放入NFS存儲上,表單數據定為1600M,內存設置為表單數據量一半。
- 關閉直接路勁讀,本次測試主要關注Smart Cache作為Buffer Cache二級緩存性能。
- 執行的測試SQL需要執行三次及三次以上,讓ORACLE緩存相關熱塊。
1.1.6 Oracle Smart Cache 測試標準點
1.2 測試過程
1.2.1 Oracle Smart Cache 開啟
SQL>analyze table ckpt_lu.test_table compute statistics;先簡單收集統計信息
06:30:56 SQL> conn ckpt_lu/ckpt_lu Connected. 06:31:09 SQL> select sum(bytes/1024/1024) m from user_extents where segment_name='TEST_TABLE';M ----------1600Elapsed: 00:00:00.37 06:31:28 SQL> select name,value from v$sysstat where name in ('physical read flash cache hits','physical reads','consistent gets','db block gets','flash cache insert');NAME VALUE ---------------------------------------------------------------- ---------- db block gets 388 consistent gets 145703 physical reads 4754 physical read flash cache hits 0Elapsed: 00:00:00.02 06:31:46 SQL> set time on 06:32:08 SQL> set timing on 06:32:08 SQL> select /*+ monitor */ count(*) as FirstWithSc from test_table;FIRSTWITHSC -----------5853184Elapsed: 00:02:04.36 06:33:05 SQL> select /*+ monitor */ count(*) as SecondWithSc from test_table;SECONDWITHSC ------------5853184Elapsed: 00:00:43.06 06:35:22 SQL> select /*+ monitor */ count(*) as ThirdWithSc from test_table;THIRDWITHSC -----------5853184Elapsed: 00:00:16.17 06:36:17 SQL> select /*+ monitor */ count(*) as FouthWithSc from test_table;FOUTHWITHSC -----------5853184Elapsed: 00:00:16.19 06:36:59 SQL> select name,value from v$sysstat where name in ('physical read flash cache hits','physical reads','consistent gets','db block gets','flash cache insert');NAME VALUE ---------------------------------------------------------------- ---------- db block gets 830 consistent gets 974792 physical reads 758834 physical read flash cache hits 547581Elapsed: 00:00:00.01執行壓力腳本,并設置Sql Monitor監控
7nn5sg97fhkhk select /*+ monitor */ count(*) as FirstWithSc from test_table b2hdkmfcscn3t select /*+ monitor */ count(*) as ThirdWithSc from test_table 40s8yqbkh8237 select /*+ monitor */ count(*) as FouthWithSc from test_table 8tghy100mctdv select /*+ monitor */ count(*) as SecondWithSc from test_table收集四次SQL執行計劃。
塊緩存其中前后對比-擊中大量塊
1.2.2 Oracle Smart Cache 關閉
06:42:04 SQL> conn camdunki/camdunki Connected. 06:42:48 SQL> select sum(bytes/1024/1024) m from user_extents where segment_name='TEST_TABLE';M ----------1600Elapsed: 00:00:00.45 06:42:55 SQL> set time on 06:43:52 SQL> set timing on 06:43:52 SQL> select /*+ monitor */ count(*) as First from test_table;FIRST ----------5853184Elapsed: 00:00:50.01 06:44:43 SQL> select /*+ monitor */ count(*) as Second from test_table;SECOND ----------5853184Elapsed: 00:00:46.66 06:45:44 SQL> select /*+ monitor */ count(*) as Third from test_table;THIRD ----------5853184Elapsed: 00:00:42.97 06:46:37 SQL> select /*+ monitor */ count(*) as Fouth from test_table;FOUTH ----------5853184Elapsed: 00:00:45.04 06:47:37 SQL> select name,value from v$sysstat where name in ('physical read flash cache hits','physical reads','consistent gets','db block gets','flash cache insert');NAME VALUE ---------------------------------------------------------------- ---------- db block gets 699 consistent gets 974502 physical reads 749431 physical read flash cache hits 0Elapsed: 00:00:00.01執行壓力腳本,并設置Sql Monitor監控
7nn5sg97fhkhk select /*+ monitor */ count(*) as First from test_table; b2hdkmfcscn3t select /*+ monitor */ count(*) as Second from test_table; 40s8yqbkh8237 select /*+ monitor */ count(*) as Third from test_table; 8tghy100mctdv select /*+ monitor */ count(*) as Fouth from test_table;收集四次SQL執行計劃。
塊緩存擊中量-不變
1.3 測試結果數據整合
1.3.1 Sql語句執行時間
可以發現通過以上測試倆者之間時間差距還是比較大的
**
開啟Smart Cache后Sql語句第一次執行耗時較久。第二次部分熱塊被Cache到二級緩存區上,時間有所縮短,第三次大部分塊被Cache,時間縮短了大約7倍。
**
1.3.2 Sql語句執行效率
**
從等待事件上看,倆種情況下第一次Sql等待事件差不多,隨著執行次數增加,在開啟特性的情況下,熱塊逐步被Cache到二級緩存中,所對應的等待事件也慢慢降低,語句更加高效一點,沒有二級緩存的情況下,Sql語句一直處于低效運行狀態。
**
1.3.3 系統資源情況
**
如圖,該圖顯示測試過程中CPU Wait on OI 比率,在6:30之前,創建測試表需要對NFS存儲進行頻繁的讀寫,CPU Wait on IO比率居高不下。6:30至6:42分開啟Oracle Smart Cache特性進行Sql語句測試,WAIT ON IO暫時下降,Sdc設備正是本地設置的二級緩存盤,這個時候SQL所需要的大部分的數據塊在本地二級緩存上可以得到,CPU WAIT ON IO恢復正常值。等到關閉Oracle Smart Cache特性進行Sql語句測試時,Sql所需要的塊還是從NFS存儲上讀取,導致CPU Wait on OI再次飆升。
**
總結
以上是生活随笔為你收集整理的Oracle Smart Flash 新特性性能测试说明的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在WordPress菜单中显示图标[
- 下一篇: Debezium 抽取oracle数据