Oracle IO性能测试
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
Oracle IO性能测试的更多相关文章
- 2、Oracle Logminer性能测试
Oracle Logminer性能测试 1 测试介绍 1.1 测试目的 通过模拟不同环境下LogMiner解析联机/归档日志文件运行情况,通过测试所获取的数据分析,通过对以下两点的验证来确定通过Log ...
- Oracle IO问题解析(转)
http://www.hellodba.com/reader.php?ID=76〈=cn 数据库的作用就是实现对数据的管理和查询.任何一个数据库系统,必然存在对数据的大量读或者写或者两中操作都大量存在 ...
- 基于LR的Oracle应用性能测试
最近对一个oracle ERP系统的INV模块进行性能测试,因为之前大部分都是测试web类型的应用,在这方面经验较少,期间也遇到了不少问题,因此有必要作些总结,以备后忘.首先先简单了解下测试对象相关的 ...
- Oracle IO优化心得
很多的时侯,做Oracle DBA的我们,当应用管理员向我们通告现在应用很慢.数据库很慢的时侯,我们到数据库时做几个示例的Select也发现同样的问题时,有些时侯我们会无从下手,因为我们认为数据库的各 ...
- 解决 oracle IO占用率很高的问题
突然user io占用率很很高,看了一个AWR报告,发现direct path read temp,direct path write temp的的数率很高,后来怀疑是临时表空间不够了,就试着设了一下 ...
- 如何用sysbench做好IO性能测试
sysbench 是一个非常经典的综合性能测试工具,通常都用它来做数据库的性能压测,但也可以用来做CPU,IO的性能测试.而对于IO测试,不是很推荐sysbench,倒不是说它有错误,工具本身没有任何 ...
- [Oracle] Io Error: The Network Adapter could not establish the connection 解决方案
Io 异常: The Network Adapter could not establish the connection这个异常的出现一般与数据库和你的PC的设置有关 这种异常的出现大致上有下面几种 ...
- (转)Linux 磁盘IO性能测试
Linux 如何测试 IO 性能(磁盘读写速度) 这几天做MySQL性能测试,偌大一个公司,找几台性能测试机器都很纠结,终于协调到两台,IO的性能如何还不知道.数据库属于IO密集型的应用,所以还是先评 ...
- Fio IO性能测试
fio-2.1.2-1.el5.rf.x86_64 介绍 fio different types of I/O engines (sync, mmap, libaio, posixaio, SG v3 ...
随机推荐
- Java实现 蓝桥杯VIP 算法提高 种树
算法提高 种树 时间限制:1.0s 内存限制:256.0MB 种树 问题描述 A城市有一个巨大的圆形广场,为了绿化环境和净化空气,市政府决定沿圆形广场外圈种一圈树.园林部门 得到指令后,初步规划出n个 ...
- Java实现 蓝桥杯VIP 算法提高 交换Easy
算法提高 交换Easy 时间限制:1.0s 内存限制:512.0MB 问题描述 给定N个整数组成的序列,每次交换当前第x个与第y个整数,要求输出最终的序列. 输入格式 第一行为序列的大小N(1< ...
- C语言深入理解通过指针引用多维数组(指针中使用起始地址 元素地址 元素值的区分)
#include "pch.h" #include <iostream> #include<stdio.h> int main() { // std::co ...
- 【python】【开源】使用Tkinter和matplotlib实时显示图像,打造属于自己的性能测试小工具
在腾讯的perfdog工具还未公开时,当时需要查看内存使用情况等信息,就用python写了个小工具 为了提升开发效率,就直接借用了雷子开源的性能测试工具的布局,自己美化了一下,然后加入了实时显示数据的 ...
- jstat监控JVM内存使用、GC回收情况
jstat -gcutil 2388 3000 6 每隔3秒打印一次pid为2388的堆内存的使用情况,共打印6次 S0— Heap上的 Survivor space 0 区已使用空间的百分比 S1 ...
- python—模块与包
模块: (一个.py文件就是一个模块module,模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能.) 模块分三种: 1.python标准库 2.第三方模块 3.应用程序自定义模块 ...
- set基本运用
/* set集合基本用法 */ #include<iostream> #include<set> using namespace std; //set<T>a; v ...
- Java基础(十一)
一.连接到服务器 telnet是一种用于网络编程的非常强大的测试工具,你可以在命令shell中输入telnet来启动它. 二.实现服务器 服务器循环体: 1.通过输入数据流从客户端接收一个命令. 2. ...
- 分布式数据库PolonDB 云端发力未来数据处理需求
企业数字化转型的不断深入,传统 IT 架构和数据库早已无法适应诸如物联网.新金融.新零售.新制造等行业对于数据高吞吐.灵活扩展等需求,企业对数据库有了更高的要求. 青云QingCloud 本次推出的 ...
- 【分区】使用 GPT 分区表分区并格式化 (非 FreeBSD 系统)
新购买的 Linux 云服务器,由于数据盘未做分区和格式化,无法使用. 注意: 数据盘中的数据在格式化后将全部被清空.请在格式化之前,确保数据盘中没有数据或已对重要数据进行备份.为避免服务发生异常,格 ...