重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 327|回复: 0
打印 上一主题 下一主题

[Oracle] Oracle I/O性能测试之DBMS_RESOURCE_MANAGER.CALIBRATE_IO篇

[复制链接]
跳转到指定楼层
楼主
发表于 2024-10-27 17:01:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Oracle 11g数据库中提供了DBMS_RESOURCE_MANAGER.CALIBRATE_IO PL/SQL过程用于对当前数据库实例的I/O性能进行测试。
DBMS_RESOURCE_MANAGER.CALIBRATE_IO的参数如下:

DBMS_RESOURCE_MANAGER.CALIBRATE_IO (
   num_physical_disks      IN  PLS_INTEGER DEFAULT 1,
   max_latency             IN  PLS_INTEGER DEFAULT 20,
   max_iops                OUT PLS_INTEGER,
   max_mbps                OUT PLS_INTEGER,
   actual_latency          OUT PLS_INTEGER);
可以使用如下方法进行调用测试:

SET SERVEROUTPUT ON
DECLARE
  lat  INTEGER;
  iops INTEGER;
  mbps INTEGER;
BEGIN
-- DBMS_RESOURCE_MANAGER.CALIBRATE_IO (<DISKS>, <MAX_LATENCY>, iops, mbps, lat);
   DBMS_RESOURCE_MANAGER.CALIBRATE_IO (1, 100, iops, mbps, lat);

  DBMS_OUTPUT.PUT_LINE ('max_iops = ' || iops);
  DBMS_OUTPUT.PUT_LINE ('latency  = ' || lat);
  DBMS_OUTPUT.PUT_LINE ('max_mbps = ' || mbps);
end;
/
其中num_physical_disks参数根据当前系统中的disk个数进行设置,在虚拟环境中,可能要选取不同的数值进行测试比较,以获得最佳测试效果。

测试实例####
以下为在虚拟机中的oracle rdbms 11.2.0.4测试的情况,分别选取num_physical_disks为1、2、3、4进行比较。
测试成绩如下:

num_physical_disks=1#####
max_iops = 118
latency  = 10
max_mbps = 12
num_physical_disks=2#####
max_iops = 126
latency  = 9
max_mbps = 16
num_physical_disks=3#####
max_iops = 110
latency  = 11
max_mbps = 16
num_physical_disks=4#####
max_iops = 102
latency  = 12
max_mbps = 14
可以看出,在我当前环境中,当num_physical_disks=2,测试可以获取最佳的I/O性能。

和Oracle Orion比较####
和Oracle orion工具相比,使用DBMS_RESOURCE_MANAGER.CALIBRATE_IO方法进行I/O性能测试,是在真实的oracle实例环境中测试,相对Oracle orion使用程序模拟Oracle的I/O操作更能反映真实情况。

但是DBMS_RESOURCE_MANAGER.CALIBRATE_IO需要首先有Oracle 实例存在,而且测试结果和控制参数过于简单,不便于根据真实系统进行调整。而Oracle orion有比较多的控制参数,可以用来在实施数据库之前对I/O子系统性能进行评估。

一些研究####
async IO?#####
把Oracle orion和DBMS_RESOURCE_MANAGER.CALIBRATE_IO两种方法测试出来的性能进行比较,发现DBMS_RESOURCE_MANAGER.CALIBRATE_IO的测试结果要远远低于Oracle orion。

看了一下文档,发现dbf的async IO没开。
使用alter system set filesystemio_options='asynch' scope=spfile打开async IO,然后重启数据库实例。

重新运行测试,结果如下:

max_iops = 120
latency  = 98
max_mbps = 18
(这个结果和没开async IO差别不大啊),还得继续研究。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-24 23:34 , Processed in 0.118234 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表