Today, i need to test one database's iops and do something for oracle db's io test.

How to test the db's iops?

It can use oracle's pl/sql package taht is dbms_resource_manager.calibrate_io.

Here is the introduction of that procedure.

CALIBRATE_IO Procedure

This procedure calibrates the I/O capabilities of storage. Calibration status is available from theV$IO_CALIBRATION_STATUS view and results for a successful calibration run are located inDBA_RSRC_IO_CALIBRATE table.

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);
Parameter Description

num_physical_disks

Approximate number of physical disks in the database storage

max_latency

Maximum tolerable latency in milliseconds for database-block-sized IO requests

max_iops

Maximum number of I/O requests per second that can be sustained. The I/O requests are randomly-distributed, database-block-sized reads.

max_mbps

Maximum throughput of I/O that can be sustained, expressed in megabytes per second. The I/O requests are randomly-distributed, 1 megabyte reads.

actual_latency

Average latency of database-block-sized I/O requests at max_iops rate, expressed in milliseconds

Only users with sysdba can run this procedure to test the ions,  only one calibrate_io procedure running at a time and it will be simultaneously generate record on all node in real application cluster, for example

sys@QDATA>DECLARE
2 lat INTEGER;
3 iops INTEGER;
4 mbps INTEGER;
5 BEGIN
6
7 DBMS_RESOURCE_MANAGER.CALIBRATE_IO (2, 10, iops, mbps, lat);
8
9 DBMS_OUTPUT.PUT_LINE ('max_iops = ' || iops);
10 DBMS_OUTPUT.PUT_LINE ('latency = ' || lat);
11 dbms_output.put_line('max_mbps = ' || mbps);
12 end;
13 / max_iops = 71801
latency = 1
max_mbps = 1134 PL/SQL procedure successfully completed.

Views for I/O calibration results

SQL> desc V$IO_CALIBRATION_STATUS
Name Null? Type
----------------------------------------- -------- ----------------------------
STATUS VARCHAR2(13)
CALIBRATION_TIME TIMESTAMP(3) SQL> desc gv$io_calibration_status
Name Null? Type
----------------------------------------- -------- ----------------------------
INST_ID NUMBER
STATUS VARCHAR2(13)
CALIBRATION_TIME TIMESTAMP(3) Column explanation:
-------------------
STATUS:
IN PROGRESS : Calibration in Progress (Results from previous calibration
run displayed, if available)
READY : Results ready and available from earlier run
NOT AVAILABLE : Calibration results not available. CALIBRATION_TIME: End time of the last calibration run

DBA table that stores I/O Calibration results

SQL> desc DBA_RSRC_IO_CALIBRATE
Name Null? Type
----------------------------------------- -------- ----------------------------
START_TIME TIMESTAMP(6)
END_TIME TIMESTAMP(6)
MAX_IOPS NUMBER
MAX_MBPS NUMBER
MAX_PMBPS NUMBER
LATENCY NUMBER
NUM_PHYSICAL_DISKS NUMBER

最新文章

  1. 《Web开发中块级元素与行内元素的区分》
  2. 单链表、循环链表的JS实现
  3. 滑动的scrollowview的导航渐变
  4. 基本的git命令
  5. Servlet3.0的新特性
  6. Map.EntrySet的使用方法
  7. PRINCE2 有级别吗?
  8. 14_Python将列表作为栈和队列_Python编程之路
  9. VC使用双缓冲制作绘图控件
  10. redis订阅关闭异常解决
  11. ACM-ICPC 2018 焦作赛区网络预赛 I Save the Room
  12. windows7 64位安装tensorflow 1.4.0 CPU版本
  13. python读取并写入mat文件
  14. linux 下安装 RZ SZ命令 以及使用
  15. .Net jsc.exe 编译js 成exe
  16. POJ 2379
  17. c# 获取应用程序exe文件路径及退出应用程序的几种方法
  18. System Board Replacement Notice
  19. OpenStack计费项目Cloudkitty系列详解(一)
  20. 浅谈es5和es6中的继承

热门文章

  1. 什么是C# Lambda表达式?形如:p=>p.abc
  2. QLinkedList和std::forward_list(都是双向链表,不支持operator[],好处可能是插入和删除都比较快)
  3. perl 处理文本
  4. Oracle查看表空间使用情况
  5. WebService推送数据,数据结构应该怎样定义?
  6. 读取中兴3G告警log告警文件到集合
  7. 6个最佳的开源Python应用服务器
  8. document.body的一些用法以及js中的常见问题
  9. jquery mobile自己定义webapp开发实例(一)——前言篇
  10. 试解析Tomcat运行原理(一)--- socket通讯(转)