`

Linux 上常见的 IO 基准测试工具比较dd/orion/iozone/bonnie++

    博客分类:
  • IO
 
阅读更多

经常要对一些新存储系统进行 I/O Benchmark 测试,每次测试又有可能针对不同的目的,但基本也都是围绕数据库转悠,心血来潮,对几个常见的工具做个比较。

 

 

要强调的几点:
ORION –Oracle I/O Numbers Calibration Tool 还是比较全面的针对数据库应用的 IO 测试工具。现在 Oracle 发布了不少平台的移植版本。该工具也比较好用。

数据库应用必需要考虑异步 I/O 的因素,否则结果会有很大偏差,当然如果只测试存储能力的话,到可以忽略。AIO 压力测试可以考虑以下 AIO-Stress

Unix 命令 dd 虽然很土,但还是一个测试 I/O 的基本手段和方法.有的时候即使没别的工具只用它也能发现很多问题。另外一个需要注意的就是字符设备和块设备的差别啦。更新: 就当我说得是 GNU dd吧,谢谢下面留言的朋友。

有些工具因为用过很久了,记忆难免有问题,表格中会有误导。仅供参考。

---------------------------------------------------------------------------------------------------

 

Linux IO测试实践  (原创文章)

 

以下数据的测试时间是 2013-7-28 23-24点 ,正是阿里云服务器不忙的时间。

 

 

方法1  hdparm  阿里云服务器

-------------------------------

CentOS 5.7操作系统 (阿里云服务器系统盘) 顺序读取测试

[root@1hao ~]# hdparm -t /dev/hda

/dev/hda:

 Timing buffered disk reads:  942 MB in  3.00 seconds = 313.98 MB/sec(第一次)

 Timing buffered disk reads:  934 MB in  3.00 seconds = 311.30 MB/sec(第二次)

Timing buffered disk reads:  162 MB in  3.00 seconds =  53.93 MB/sec  (2013-7-28 14:00)

 

CentOS 5.7操作系统 (阿里云服务器虚拟盘) 顺序读取测试

[root@1hao ~]# hdparm -t /dev/xvdb

/dev/xvdb:

 Timing buffered disk reads:  122 MB in  3.02 seconds =  40.38 MB/sec(第一次)

 Timing buffered disk reads:  134 MB in  3.03 seconds =  44.22 MB/sec(第二次)

 

参考:http://blog.chinaunix.net/uid-186064-id-2823326.html

 

方法1  hdparm   MAC OS 10.7 笔记本

-------------------------------

MAC OS 10.7 操作系统 (5400转笔记本硬盘) 顺序读取测试

默认没有hdparm,所有没做测试

 

方法2  dd  公司实体机 15000转sas

-------------------------------

[root@192.168.50.65 /]# dd if=/dev/zero of=/zookeeper.dbf bs=8k count=200000 conv=fdatasync
200000+0 records in
200000+0 records out
1638400000 bytes (1.6 GB) copied, 14.2775 seconds, 115 MB/s
注:关于   conv=fdatasync       请参考:
正确的使用dd进行磁盘读写速度测试
http://elf8848.iteye.com/blogs/2089055
 linux 同步IO: sync、fsync与fdatasync 编辑
http://elf8848.iteye.com/blog/2088986

 

方法2  dd  阿里云服务器

-------------------------------

CentOS 5.7操作系统(阿里云服务器系统盘) 顺序读取测试

time dd if=/dev/hda of=/dev/null bs=8k count=102400

102400+0 records in

102400+0 records out

838860800 bytes (839 MB) copied, 2.9264 seconds, 287 MB/s (第一次)(为什么这么高?)

838860800 bytes (839 MB) copied, 3.0851 seconds, 272 MB/s (第二次)

838860800 bytes (839 MB) copied, 16.7665 seconds, 50.0 MB/s(第三次)(与上一次隔了一个小时,波动?)

838860800 bytes (839 MB) copied, 15.0574 seconds, 55.7 MB/s(第四次)

 

CentOS 5.7操作系统(阿里云服务器系统盘) 顺序写入测试

[root@1hao /]# time dd if=/dev/zero of=bigfile2 bs=8k count=102400

102400+0 records in

102400+0 records out

838860800 bytes (839 MB) copied, 13.3033 seconds, 63.1 MB/s(第一次)

838860800 bytes (839 MB) copied, 9.51204 seconds, 88.2 MB/s(第二次)

 

 

CentOS 5.7操作系统(阿里云服务器虚拟盘) 顺序读取测试

[root@1hao ~]# time dd if=/dev/xvdb of=/dev/null bs=8k count=102400

102400+0 records in

102400+0 records out

838860800 bytes (839 MB) copied, 9.49292 seconds, 88.4 MB/s (第一次)

838860800 bytes (839 MB) copied, 16.1384 seconds, 52.0 MB/s (第二次)

838860800 bytes (839 MB) copied, 14.7076 seconds, 57.0 MB/s (第三次)

838860800 bytes (839 MB) copied, 13.9852 seconds, 60.0 MB/s (第四次)

 

CentOS 5.7操作系统(阿里云服务器虚拟盘) 顺序写入测试

[root@1hao data0]# time dd if=/dev/zero of=bigfile2 bs=8k count=102400  (bigfile2文件写入到当前目录)

102400+0 records in

102400+0 records out

838860800 bytes (839 MB) copied, 15.0549 seconds, 55.7 MB/s(第一次)

838860800 bytes (839 MB) copied, 12.8344 seconds, 65.4 MB/s(第二次)

 

请参考:

http://space.itpub.net/441887/viewspace-630694

http://blog.csdn.net/youyudehexie/article/details/8182494

 

方法2  dd  MAC OS 10.7 笔记本

-------------------------------

MAC OS 10.7 操作系统(5400转笔记本硬盘) 顺序读取测试

zhaorai@zhaomatoMacBook-Pro ~$ sudo time dd if=/dev/disk0 of=/dev/null bs=8k count=102400

102400+0 records in

102400+0 records out

838860800 bytes transferred in 29.715178 secs (28230045 bytes/sec)

       29.72 real         0.13 user         6.62 sys

 

MAC OS 10.7 操作系统(5400转笔记本硬盘) 顺序写入测试

zhaorai@zhaomatoMacBook-Pro ~$ dd if=/dev/zero of=bigfile bs=8k count=102400

102400+0 records in

102400+0 records out

838860800 bytes transferred in 16.930649 secs (49546878 bytes/sec)

 

写测试请参考:

http://langui.sh/2011/04/02/using-dd-in-os-x/

http://askubuntu.com/questions/215262/dd-dev-disk4-permission-denied-error-when-making-liveusb-on-mac-os-x

 

---------------------------------------------------------------------------------------------------

近来想了解一下开发环境的IO性能,分别用dd/orion/iozone/bonnie++四种工具测试了一下
原文地址:http://space.itpub.net/441887/viewspace-630694
 
开发环境系统配置如下:
Intel SR1625 server, 2 CPU, 32GB内存, 用主板自带卡做了raid1+0,8个7200转SATA硬盘
操作系统是RHEL 5.3 64位
因为物理内存是32GB,因此整个过程都选用了60GB+的数据量来测试,以避免cache的影响
 
1. 首先用自带的dd命令先测一下, 块大小为8k
----------------------------------------
dd只能提供一个大概的测试结果,而且是连续IO而不是随机IO
 
读测试
# time dd if=/dev/sda2 f=/dev/null bs=8k count=8388608
8388608+0 records in
8388608+0 records out
68719476736 bytes (69 GB) copied, 516.547 seconds, 133 MB/s
 
real    8m36.926s
user    0m0.117s
sys     0m55.216s
 
写测试
# time dd if=/dev/zero f=/opt/iotest bs=8k count=8388608
8388608+0 records in
8388608+0 records out
68719476736 bytes (69 GB) copied, 888.398 seconds, 77.4 MB/s
 
real    14m48.743s
user    0m3.678s
sys     2m47.158s
 
读写测试
# time dd if=/dev/sda2 f=/opt/iotest bs=8k count=8388608
8388608+0 records in
8388608+0 records out
68719476736 bytes (69 GB) copied, 1869.89 seconds, 36.8 MB/s
 
real    31m10.343s
user    0m2.613s
sys     3m25.548s
 
2. 接下来用Oracleorion工具来测一下
----------------------------------------
解压即可使用
# gzip orion_linux_x86-64.gz
 
测异步IO时需要libaio库
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64
# echo $LD_LIBRARY_PATH
:/opt/oracle/product/10.2.0/lib:/usr/lib64
 
创建配置文件mytest.lun,列出要测试的分区即可. 注意文件名前缀要跟下面的 testname一致
# vi mytest.lun
 
查看mytest.jun内容
# cat mytest.lun
/dev/sda2
 
先来个simple test
# ./orion_linux_x86-64 -run simple -testname mytest -num_disks 8
 
查看测试结果
# cat mytest_20081111_1431_summary.txt
ORION VERSION 11.1.0.7.0
 
Commandline:
-run simple -testname mytest -num_disks 8
 
This maps to this test:
Test: mytest
Small IO size: 8 KB
Large IO size: 1024 KB
IO Types: Small Random IOs, Large Random IOs
Simulated Array Type: CONCAT
Write: 0%
Cache Size: Not Entered
Duration for each Data Point: 60 seconds
Small Columns:,      0
Large Columns:,      0,      1,      2,      3,      4,      5,      6,      7,      8,      9,     10,     11,     12,     13,     14,     15,     16
Total Data Points: 38
 
Name: /dev/sda2 Size: 629143441920
1 FILEs found.
 
Maximum Large MBPS=56.97 @ Small=0 and Large=7
Maximum Small IOPS=442 @ Small=40 and Large=0
Minimum Small Latency=14.62 @ Small=1 and Large=0
 
最大MBPS为56.97,最大IOPS为442
 
再测一下8k随机读操作
# ./orion_linux_x86-64 -run advanced -testname mytest -num_disks 8 -size_small 8 -size_large 8 -type rand &
 
看看结果
# cat mytest_20081111_1519_summary.txt
ORION VERSION 11.1.0.7.0
 
Commandline:
-run advanced -testname mytest -num_disks 8 -size_small 8 -size_large 8 -type rand
 
This maps to this test:
Test: mytest
Small IO size: 8 KB
Large IO size: 8 KB
IO Types: Small Random IOs, Large Random IOs
Simulated Array Type: CONCAT
Write: 0%
Cache Size: Not Entered
Duration for each Data Point: 60 seconds
Small Columns:,      0
Large Columns:,      0,      1,      2,      3,      4,      5,      6,      7,      8,      9,     10,     11,     12,     13,     14,     15,     16
Total Data Points: 38
 
Name: /dev/sda2 Size: 629143441920
1 FILEs found.
 
Maximum Large MBPS=3.21 @ Small=0 and Large=13
Maximum Small IOPS=448 @ Small=38 and Large=0
Minimum Small Latency=15.16 @ Small=1 and Large=0
 
最大MBPS为3.21(这么低??),最大IOPS为448
 
再测一下1M顺序读操作, 失败了, 原因不明...
# ./orion_linux_x86-64 -run advanced -testname mytest -num_disks 8 -size_small 1024 -size_large 1024 -type seq
ORION: ORacle IO Numbers -- Version 11.1.0.7.0
mytest_20081114_1349
Test will take approximately 73 minutes
Larger caches may take longer
 
rwbase_run_test: rwbase_reap_req failed
rwbase_run_process: rwbase_run_test failed
rwbase_rwluns: rwbase_run_process failed
orion_warm_cache: Warming cache failed. Continuing
 
看看结果
# cat mytest_20081111_1620_summary.txt
ORION VERSION 11.1.0.7.0
 
Commandline:
-run advanced -testname mytest -num_disks 8 -size_small 1024 -size_large 1024 -type seq
 
This maps to this test:
Test: mytest
Small IO size: 1024 KB
Large IO size: 1024 KB
IO Types: Small Random IOs, Large Sequential Streams
Number of Concurrent IOs Per Stream: 4
Force streams to separate disks: No
Simulated Array Type: CONCAT
Write: 0%
Cache Size: Not Entered
Duration for each Data Point: 60 seconds
 
没结果,失败
 
3. 用iozone来测一下
----------------------------------------
# tar -xvf iozone3_345.tar
# make linux-AMD64
 
指定64G的文件,只测read/reread和write/rewrite,记录大小从4k-16k.同时生成一个excel文件iozone.wks
# ./iozone -Rab iozone.wks -s64G -i 0 -i 1 -y 4k -q 16k
        Iozone: Performance Test of File I/O
                Version $Revision: 3.345 $
                Compiled for 64 bit mode.
                Build: linux-AMD64
 
        Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
                     Al Slater, Scott Rhine, Mike Wisner, Ken Goss
                     Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
                     Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
                     Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
                     Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
                     Fabrice Bacchella, Zhenghua Xue, Qin Li.
 
        Run began: Tue Nov 11 10:23:25 2008
 
        Excel chart generation enabled
        Auto Mode
        File size set to 67108864 KB
        Using Minimum Record Size 4 KB
        Using Maximum Record Size 16 KB
        Command line used: ./iozone -Rab iozone.wks -s64G -i 0 -i 1 -y 4k -q 16k
        Output is in Kbytes/sec
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 Kbytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                            random  random    bkwd   record   stride                                 
              KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
        67108864       4   72882   69470   104898   125512
        67108864       8   72083   69256   133689   109061
        67108864      16   73375   69155   142019   116034
 
iozone test complete.
Excel output is below:
 
"Writer report"
        "4"  "8"  "16"
"67108864"   72882  72083  73375
 
"Re-writer report"
        "4"  "8"  "16"
"67108864"   69470  69256  69155
 
"Reader report"
        "4"  "8"  "16"
"67108864"   104898  133689  142019
 
"Re-Reader report"
        "4"  "8"  "16"
"67108864"   125512  109061  116034
 
可以看到,8k的写是72M/s左右,读是133M/s左右,跟dd的结果比较接近
 
测一下64G文件8k随机读写
# ./iozone -Rab iozone.wks -s64G -i 2 -y 8k -q 8k
        Iozone: Performance Test of File I/O
                Version $Revision: 3.345 $
                Compiled for 64 bit mode.
                Build: linux-AMD64
 
        Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins
                     Al Slater, Scott Rhine, Mike Wisner, Ken Goss
                     Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR,
                     Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner,
                     Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone,
                     Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root,
                     Fabrice Bacchella, Zhenghua Xue, Qin Li.
 
        Run began: Fri Nov 14 15:52:01 2008
 
        Excel chart generation enabled
        Auto Mode
        File size set to 67108864 KB
        Using Minimum Record Size 8 KB
        Using Maximum Record Size 8 KB
        Command line used: ./iozone -Rab iozone.wks -s64G -i 2 -y 8k -q 8k
        Output is in Kbytes/sec
        Time Resolution = 0.000001 seconds.
        Processor cache size set to 1024 Kbytes.
        Processor cache line size set to 32 bytes.
        File stride size set to 17 * record size.
                                                            random  random    bkwd   record   stride                                 
              KB  reclen   write rewrite    read    reread    read   write    read  rewrite     read   fwrite frewrite   fread  freread
        67108864       8
Error reading block at 6501007360
read: Success
 
出错了(??)
 
4. 最后用bonnie++测一下
----------------------------------------
安装
# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64
# ./configure
# make
# make install
 
开始测试,默认文件大小是内存的2倍
# bonnie++ -d /opt/IOTest/ -m sva17 -u root
Using uid:0, gid:0.
Writing with putc()...done
Writing intelligently...done
Rewriting...done
Reading with getc()...done
Reading intelligently...done
start 'em...done...done...done...
Create files in sequential order...done.
Stat files in sequential order...done.
Delete files in sequential order...done.
Create files in random order...done.
Stat files in random order...done.
Delete files in random order...done.
Version 1.03e       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
sva17           63G 52391  84 35222   7 34323   6 56362  88 131568  10 176.7   0
                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16 +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++ +++++ +++
sva17,63G,52391,84,35222,7,34323,6,56362,88,131568,10,176.7,0,16,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++,+++++,+++
 
顺序写: 按字符是52391KB/s,CPU占用率84%;按块是35222KB/s,CPU占用率7%
顺序读: 按字符是56362KB/s, CPU占用率88%;按块是131568KB/s,CPU占用率10%
随机读写: 176.7次/s,CPU占用率0%
后两项全是++ (没结果?)
 
结论:不同测试工具构建出来的测试环境不同,侧重点也不一样,得到的结果可能相差比较大。
 
MBPS:
dd和iozone比较接近,读写分别是130+和70+。
orion读57左右,写没测(会删掉分区内所有文件!)
bonnie++按块读是130左右,写是35左右;按字符读是56左右,写是52左右
IOPS:
dd 无结果
orion 440左右(只读)
iozone 出错
bonnie++ 176.7 (读写)
  • 大小: 65.9 KB
分享到:
评论
1 楼 avalonzst 2017-04-05  
mark一下.

相关推荐

    存储系统和磁盘压力测试工具操作指导

    ORION是由Oracle提供的一款用于测试IO性能的工具。它不仅能够模拟Oracle数据库的IO操作,还可以仿真ASM的条带化功能。ORION支持多种操作系统平台,如AIX、Linux和Windows,并且兼容SAN和DAS等存储设备。 - **下载...

    Orion oracle提供的测试io性能的工具

    - 验证设备可访问性,如在Linux上使用dd命令。 - 确保异步IO库(如Linux的libaio)已安装并可访问。 - 运行Orion进行测试,如首次测试推荐使用简单的"simple"测试模式。 5. **"simple"测试**: - "simple"测试...

    Orion 10.2 windows+linux

    无论是Windows服务器的稳定性测试,还是Linux集群的扩展性验证,Orion 10.2都能提供强大的工具支持,确保企业在数字化转型过程中,拥有坚实的存储基础。 总的来说,Oracle Orion 10.2是一款专业且全面的存储测试...

    SolarWinds网络性能监视器(NPM)12.0.1 / Orion Package 12.1

    SolarWinds网络性能监视器(NPM)12.0.1 / Orion Package 12.1 亲自测试可以用

    orion_linux_x86-64.gz

    orion_linux测试工具。 orion,一款由Oracle公司提供,专门用于模拟数据库运行机制来测试存储的优秀IO存储测试软件,可以在不运行oracle数据库的情况下,仿真OLTP随机操作(测试IOPS)或者是OLAP连续性操作(测试...

    关于IO性能的测试工具

    关于IO性能的测试工具——Oracle Orion 在IT领域,尤其是数据库管理和系统性能优化方面,IO(输入/输出)性能的测试与分析至关重要。它直接影响着系统的响应速度、数据处理能力和用户体验。Oracle Orion作为一款...

    orcale 测试工具 orion10.2

    orion10.2 orcale 测试工具 orion10.2 linux下载

    51CTO下载-SolarWinds+Orion+添加Node到自定义Group.pdf

    51CTO下载-SolarWinds+Orion+添加Node到自定义Group.pdf

    orion--oracle存储模拟测试软件

    标题中的“orion--oracle存储模拟测试软件”指的是Orion,这是一个专用于Oracle数据库存储性能测试的工具。在Oracle数据库的环境中,存储系统的性能对于数据库的整体运行效率至关重要。Orion能够模拟真实的Oracle...

    x64 Redhat +RAC11g 自动化安装脚本

    大家通过脚本在虚机或独立机上完成Oracle集群的自动化安装(静默安装); 有几点说明: 一:数据库资源介质需要自己处理(下载后上传到/inst目录下): Linux-x86-64_1of7.zip database安装介质 Linux-x86-64_2of7....

    fio-2.1.2.tar.gz

    fio在Linux系统下使用比较方便,iometer在window系统下使用比较方便,Orion是oracle的IO测试软件,可在没有安装oracle数据库的情况下模拟oracle数据库场景的读写。 如下是在Linux系统上采用fio工具来对SAN存储进行...

    orion_linux_x86.gz

    数据库资源模拟监控; 可以在不运行oracle数据库的情况下,仿真OLTP随机操作(测试IOPS)或者是OLAP连续性操作(测试吞吐量)。

    OKit:Orion应用程序框架

    豪华版+ Linux。 为了每一个。 Orion操作系统的应用程序工具包。//////////////////////////////////////////////////// /////////////////此工具包正在开发中,尚无法使用! ////////////////////////////////////...

    Orion-OpenAPI

    简单的Orion OpenAPI文档和Swagger测试建造在文件中克隆项目git clone https://github.com/H4KRO/Orion-OpenAPI.git 在项目文件夹中docker build -t orion_openapi openapi/跑步在项目文件夹中docker-compose up ...

    orion_gtk3_theme

    标题中的"orion_gtk3_theme"指的是一个基于GTK3的Orion主题,这通常是一个图形用户界面(GUI)的主题包,用于改变Linux系统中应用程序的外观和感觉。GTK3是一个广泛使用的开源GUI构建工具包,支持多种操作系统,包括...

    Orion2_CDM.pdf

    测试面板是 Orion2 应用程序的主窗口,包含标准的 Windows 标题行、菜单栏、状态行、工具栏和作业框对话框。测试面板提供了多种工具按钮,包括 Start/Stop 按钮、暂停按钮、真空按钮、N2 按钮、Report 按钮、Save ...

    ssd+flashcache+sas磁盘性能测试对比

    根据给定文件的信息,我们可以深入探讨SSD、FlashCache与SAS磁盘的性能测试对比,特别是关注IO性能的关键指标,如IOPS(每秒输入/输出操作)、延迟(Latency)以及吞吐量(Throughput)。此外,我们还将探讨不同磁盘...

    p19404309_112040_Linux-x86-64,oracle11g redhat7必装补丁包

    redhat7系统必装的补丁,否则安装集群软件会失败。安装oracle 11g RAC 的 p18370031 补丁包 , RHEL 7 下安装oracle 11g RAC 的 p18370031 补丁包

    如何用orion做数据交换

    Orion作为一个高效的数据交换工具,被广泛应用于医疗健康信息领域,特别是HL7标准的支持,使其成为处理复杂数据交互的理想选择。以下是从标题、描述、标签以及部分内容中提炼出的关于如何使用Orion进行数据交换的...

Global site tag (gtag.js) - Google Analytics