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