Oracle IO性能测试

前言

最近发生了迁移测试库后(单节点迁移RAC)因为IO性能问题导致迁移后性能非常差的问题。

原本想在创建ASM磁盘组之前用Orion做测试,但是忘了做就没做结果出了这档子事情。

后边查了资料发现建库之后,Oracle也可以通过calibrate_io来做IOPS和吞吐量的测试。

以我上边说的迁移测试库为例,待迁移的单节点库为single-DB,迁移后的为RAC-DB1(IO严重有问题),由于存储出问题,后续更换存储在测试,为RAC-DB2。

工具介绍

  1. 测试所用的数据库用户必须具有sysdba权限。
  2. Timed_statistics参数必须设为true,异步IO必须打开。(ASM默认打开的,本地存储默认关闭)。
  3. 只有一个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性能测试的更多相关文章

  1. 2、Oracle Logminer性能测试

    Oracle Logminer性能测试 1 测试介绍 1.1 测试目的 通过模拟不同环境下LogMiner解析联机/归档日志文件运行情况,通过测试所获取的数据分析,通过对以下两点的验证来确定通过Log ...

  2. Oracle IO问题解析(转)

    http://www.hellodba.com/reader.php?ID=76〈=cn 数据库的作用就是实现对数据的管理和查询.任何一个数据库系统,必然存在对数据的大量读或者写或者两中操作都大量存在 ...

  3. 基于LR的Oracle应用性能测试

    最近对一个oracle ERP系统的INV模块进行性能测试,因为之前大部分都是测试web类型的应用,在这方面经验较少,期间也遇到了不少问题,因此有必要作些总结,以备后忘.首先先简单了解下测试对象相关的 ...

  4. Oracle IO优化心得

    很多的时侯,做Oracle DBA的我们,当应用管理员向我们通告现在应用很慢.数据库很慢的时侯,我们到数据库时做几个示例的Select也发现同样的问题时,有些时侯我们会无从下手,因为我们认为数据库的各 ...

  5. 解决 oracle IO占用率很高的问题

    突然user io占用率很很高,看了一个AWR报告,发现direct path read temp,direct path write temp的的数率很高,后来怀疑是临时表空间不够了,就试着设了一下 ...

  6. 如何用sysbench做好IO性能测试

    sysbench 是一个非常经典的综合性能测试工具,通常都用它来做数据库的性能压测,但也可以用来做CPU,IO的性能测试.而对于IO测试,不是很推荐sysbench,倒不是说它有错误,工具本身没有任何 ...

  7. [Oracle] Io Error: The Network Adapter could not establish the connection 解决方案

    Io 异常: The Network Adapter could not establish the connection这个异常的出现一般与数据库和你的PC的设置有关 这种异常的出现大致上有下面几种 ...

  8. (转)Linux 磁盘IO性能测试

    Linux 如何测试 IO 性能(磁盘读写速度) 这几天做MySQL性能测试,偌大一个公司,找几台性能测试机器都很纠结,终于协调到两台,IO的性能如何还不知道.数据库属于IO密集型的应用,所以还是先评 ...

  9. Fio IO性能测试

    fio-2.1.2-1.el5.rf.x86_64 介绍 fio different types of I/O engines (sync, mmap, libaio, posixaio, SG v3 ...

随机推荐

  1. Java实现 LeetCode 297 二叉树的序列化与反序列化

    297. 二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得 ...

  2. Java实现 蓝桥杯VIP 算法训练 确定元音字母位置

    算法训练 确定元音字母位置 时间限制:1.0s 内存限制:512.0MB 输入一个字符串,编写程序输出该字符串中元音字母的首次出现位置,如果没有元音字母输出0.英语元音字母只有'a'.'e'.'i'. ...

  3. Arrays.binarySearch和Collections.binarySearch的详细用法

    概述 binarysearch为在指定数组中查找指定值得索引值,该值在范围内找得到则返回该值的索引值,找不到则返回该值的插入位置,如果该值大于指定范围最大值则返回-(maxlength+1),而: i ...

  4. github下载速度太慢,这里有已经下载完的nacos-server.zip组件

    nacos: 分布式系统微服务的注册中心和配置中心 .. 在微服务系统中,起到很重要的作用.小伙伴老是给我抱怨,说这个github下面很慢慢,半天下载不下来,所有这样呢,我就把已经下载好的 nacos ...

  5. PAT 1043 Is It a Binary Search Tree (25分) 由前序遍历得到二叉搜索树的后序遍历

    题目 A Binary Search Tree (BST) is recursively defined as a binary tree which has the following proper ...

  6. PHP丨PHP基础知识之条件语SWITCH判断「理论篇」

    Switch在一些计算机语言中是保留字,其作用大多情况下是进行判断选择.以PHP来说,switch(开关语句)常和case break default一起使用 典型结构 switch($control ...

  7. Mybatis各语句高级用法(未完待续)

    更多的语法请参考官网 http://www.mybatis.org/mybatis-3/dynamic-sql.html# 环境:MySQL5.6,jdk1.8 建议:所有的参数加上@Param re ...

  8. 第三模块 :微服务网关Zuul架构和实践

    52.Zuul网关架构剖析~1.mp4 请求过来之后首先会通过前置过滤器,然后到路由过滤器,路由过滤器是真正访问后台远程服务的,经过路由器之后,最后会传递给后置过滤器 在三个过滤器处理的过程中任何一个 ...

  9. Spring事务深入剖析--spring事务失效的原因

    之前我们讲的分布式事务的调用都是在一个service中的事务方法,去调用另外一个service中的业务方法, 如果在一个sevice中存在两个分布式事务方法,在一个seivice中两个事务方法相互嵌套 ...

  10. 31_栈的分类.swf

    栈的分类: 栈可以分为静态栈和动态栈 静态栈:要删除先删除4才能删除3,以数组为数据结构 动态栈:以链表作为数据结构,在实际中使用动态栈比较多