Oracle IO性能測試
前言
最近發生了遷移測試庫后(單節點遷移RAC)因為IO性能問題導致遷移后性能非常差的問題。
原本想在創建ASM磁盤組之前用Orion做測試,但是忘了做就沒做結果出了這檔子事情。
后邊查了資料發現建庫之后,Oracle也可以通過calibrate_io來做IOPS和吞吐量的測試。
以我上邊說的遷移測試庫為例,待遷移的單節點庫為single-DB,遷移后的為RAC-DB1(IO嚴重有問題),由於存儲出問題,后續更換存儲在測試,為RAC-DB2。
工具介紹
- 測試所用的數據庫用戶必須具有sysdba權限。
- Timed_statistics參數必須設為true,異步IO必須打開。(ASM默認打開的,本地存儲默認關閉)。
- 只有一個I/O校准同時在一個數據庫實例進行。
PS:可通過如下方式確定是否開啟異步IO:
SELECT d.name, i.asynch_io FROM v$datafile d, v$iostat_file i WHERE d.file# = i.file_no AND i.filetype_name = 'Data File';
如果異步IO是關閉的,可以通過以下方式開啟:
ALTER SYSTEM SET filesystemio_options=setall SCOPE=SPFILE; SHUTDOWN IMMEDIATE; STARTUP;
測試腳本
SET SERVEROUTPUT ON DECLARE l_latency PLS_INTEGER; l_iops PLS_INTEGER; l_mbps PLS_INTEGER; BEGIN DBMS_RESOURCE_MANAGER.calibrate_io (num_physical_disks => 1, max_latency => 20, max_iops => l_iops, max_mbps => l_mbps, actual_latency => l_latency); DBMS_OUTPUT.put_line('Max IOPS = ' || l_iops); DBMS_OUTPUT.put_line('Max MBPS = ' || l_mbps); DBMS_OUTPUT.put_line('Latency = ' || l_latency); END; /
結果輸出樣例
SYS@test1> SET SERVEROUTPUT ON SYS@test1> DECLARE 2 l_latency PLS_INTEGER; 3 l_iops PLS_INTEGER; 4 l_mbps PLS_INTEGER; 5 BEGIN 6 DBMS_RESOURCE_MANAGER.calibrate_io (num_physical_disks => 1, 7 max_latency => 20, 8 max_iops => l_iops, 9 max_mbps => l_mbps, 10 actual_latency => l_latency); 11 DBMS_OUTPUT.put_line('Max IOPS = ' || l_iops); 12 DBMS_OUTPUT.put_line('Max MBPS = ' || l_mbps); 13 DBMS_OUTPUT.put_line('Latency = ' || l_latency); 14 END; 15 / Max IOPS = 161 Max MBPS = 8 Latency = 24 PL/SQL procedure successfully completed. SYS@test1> / Max IOPS = 107 Max MBPS = 8 Latency = 18 PL/SQL procedure successfully completed. SYS@test1> / Max IOPS = 152 Max MBPS = 8 Latency = 25 PL/SQL procedure successfully completed.
統計測試結果
測試結果在上邊給出一組,就不全部放在這里了。
結果以下邊表格統計可以做對比。
指標 |
single-DB |
RAC-DB1 |
RAC-DB2 |
|||||||
最大IOPS |
518 |
445 | 469 | 161 | 107 | 152 | 13290 | 12587 | 12937 | 12811 |
最大吞吐量 |
92 |
96 | 92 | 8 | 8 | 8 | 106 | 108 | 107 | 107 |
平均延遲 |
5 |
6 | 5 | 24 | 18 | 25 | 18 | 18 | 19 | 20 |
參考
https://rdcqii.hundsun.com/portal/article/578.html
https://blog.csdn.net/Hehuyi_In/article/details/89469534
https://oracle-base.com/articles/misc/measuring-storage-performance-for-oracle-systems#slob