Oracle IO性能測試


 

Oracle IO性能測試

前言

最近發生了遷移測試庫后(單節點遷移RAC)因為IO性能問題導致遷移后性能非常差的問題。

原本想在創建ASM磁盤組之前用Orion做測試,但是忘了做就沒做結果出了這檔子事情。

后邊查了資料發現建庫之后,Oracle也可以通過calibrate_io來做IOPS和吞吐量的測試。

以我上邊說的遷移測試庫為例,待遷移的單節點庫為single-DB,遷移后的為RAC-DB1(IO嚴重有問題),由於存儲出問題,后續更換存儲在測試,為RAC-DB2。

 

工具介紹

  1. 測試所用的數據庫用戶必須具有sysdba權限。
  2. Timed_statistics參數必須設為true,異步IO必須打開。(ASM默認打開的,本地存儲默認關閉)。
  3. 只有一個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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM