使用Oracle 11.2的DBMS_RESOURCE_MANAGER.CALIBRATE_IO对Exadata X5(HC)进行测试

联系:QQ(5163721)

标题:使用Oracle 11.2的DBMS_RESOURCE_MANAGER.CALIBRATE_IO对Exadata X5(HC)进行测试

作者:Lunar©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]

之前测试的X3的flashcard的IOPS大概是满配200w左右(具体参见 《Exadata上的IOPS和MBPS》)
使用Exadata的calibrate命令测试X5-2的IOPS和MBPS
本次测试的机器是Exadata X5-2:
CPU型号:

[root@dm01cel02 cellos]# grep -E '^model name|^cpu MHz' /proc/cpuinfo
cpu MHz         : 2401.000
model name      : Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz
[root@dm01cel02 cellos]# 

[root@dm01db01 ibdiagtools]# grep -E '^model name|^cpu MHz' /proc/cpuinfo
cpu MHz         : 2301.000
model name      : Intel(R) Xeon(R) CPU E5-2699 v3 @ 2.30GHz
[root@dm01db01 ibdiagtools]# 

主机型号:

[root@dm01db01 ibdiagtools]# /opt/oracle.SupportTools/CheckHWnFWProfile -c loose
[SUCCESS] The hardware and firmware matches supported profile for server=ORACLE_SERVER_X5-2
[root@dm01db01 ibdiagtools]# 

[root@dm01cel01 ~]# /opt/oracle.SupportTools/CheckHWnFWProfile -c loose
[SUCCESS] The hardware and firmware matches supported profile for server=ORACLE_SERVER_X5-2L
[root@dm01cel01 ~]# 

.
Oracle 11.2有一个DBMS_RESOURCE_MANAGER.CALIBRATE_IO,可以用来测试磁盘IO。
这里有几个需要注意的地方:
1,DBMS_RESOURCE_MANAGER.CALIBRATE_IO不能并行执行,否则会报错:

declare
*
ERROR at line 1:
ORA-56705: I/O calibration already in progress
ORA-06512: at "SYS.DBMS_RMIN", line 463
ORA-06512: at "SYS.DBMS_RESOURCE_MANAGER", line 1302
ORA-06512: at line 6

2,这个过程的测试,对于基准测试,我个人感觉非常不合适(数值严重偏低……不知道是不是需要调整什么参数,还是Exadata上就不应该用这个测试?)
3,测试中,指定延迟参数时,不能低于10秒(oracle的限制,估计是针对硬盘考虑的)
4,后面监控用的是Oracle已离职员工(凯耀,我的好兄弟)给的mon监控软件(底层基于开源的collect rpm包)
不过在新版本的exadata上貌似脚本还有些问题,因此,有些画图时丢失了(比如IOPS,比如flashcard的图)
5,测试脚本:

set timing on serveroutput on;
declare
  v_max_iops BINARY_INTEGER;
  v_max_mbps BINARY_INTEGER;
  v_act_lat BINARY_INTEGER;
begin
  DBMS_RESOURCE_MANAGER.CALIBRATE_IO(102,10 ,v_max_iops,v_max_mbps,v_act_lat);
  dbms_output.put_line('max iops : ' || v_max_iops );
  dbms_output.put_line('max mbps : ' || v_max_mbps );
  dbms_output.put_line('actual latency : ' || v_act_lat );
end;
/

这里 102 是磁盘数量,10 是硬盘延迟
102的由来是因为,这个是一个Quarter Rack,使用onecommand安装后,缺省可用102个asmdisk,这个可以查询(V$ASM_DISK)。
下面是本次的测试结果:

15:15:05 sys@DBM>set timing on serveroutput on;
15:15:21 sys@DBM>declare
15:15:21   2    v_max_iops BINARY_INTEGER;
15:15:21   3    v_max_mbps BINARY_INTEGER;
15:15:21   4    v_act_lat BINARY_INTEGER;
begin
15:15:21   5  15:15:21   6    DBMS_RESOURCE_MANAGER.CALIBRATE_IO(102,10 ,v_max_iops,v_max_mbps,v_act_lat);
15:15:21   7    dbms_output.put_line('max iops : ' || v_max_iops );
  dbms_output.put_line('max mbps : ' || v_max_mbps );
15:15:21   8  15:15:21   9    dbms_output.put_line('actual latency : ' || v_act_lat );
15:15:21  10  end;
15:15:21  11  /
max iops : 10592
max mbps : 3515
actual latency : 11

PL/SQL procedure successfully completed.

Elapsed: 00:06:05.44
15:21:27 sys@DBM>

这里看到IOPS大概1w多,吞吐量大概每秒3.5GB,最大延迟11秒。
这个数值跟使用mon(凯耀写的)监控的数量差不错:


1


这里看到磁盘的吞吐量大概每秒3.5GB/s,跟mon监控的差不多


2


IB的吞吐量大概是3.4GB/s


3


逻辑硬盘的IOPS是10000左右,跟使用cell上的calibrate的数值差不多


4


这是执行过程中的一个截图。

16:35:13 sys@DBM>select to_char(START_TIME,'yyyy-mm-dd hh24:mi:ss') START_TIME,
                 to_char(END_TIME,'yyyy-mm-dd hh24:mi:ss') START_TIME,
16:35:13   2  16:35:13   3               MAX_IOPS, MAX_MBPS, MAX_PMBPS,LATENCY,NUM_PHYSICAL_DISKS
16:35:13   4  from dba_rsrc_io_calibrate;

START_TIME          START_TIME                  MAX_IOPS         MAX_MBPS        MAX_PMBPS          LATENCY NUM_PHYSICAL_DISKS
------------------- ------------------- ---------------- ---------------- ---------------- ---------------- ------------------
2015-04-06 15:15:22 2015-04-06 15:21:27            10592             3515              320               11                102

Elapsed: 00:00:00.00
16:35:14 sys@DBM>
此条目发表在 POC和性能调整 分类目录,贴了 , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>