Linux 测试磁盘IO性能的几种方法
来源:互联网 发布:美业软件免费 编辑:程序博客网 时间:2024/06/05 04:08
在磁盘测试中最关心的几个指标分别为:iops(每秒执行的IO次数)、bw(带宽,每秒的吞吐量)、lat(每次IO操作的延迟)。
当每次IO操作的block较小时,如512bytes/4k/8k等,测试的主要是iops。
当每次IO操作的block较大时,如256k/512k/1M等,测试的主要是bw。
1. 最简单的dd
dd是linux自带的磁盘读写工具,可用于测试顺序读写。
一般而言,磁盘读写有两种方式:BufferIO、DirectIO,DirectIO可以更好的了解纯磁盘读写的性能。
1.1 dd测试DirectIO
iops——写测试dd if=/dev/zero of=./a.dat bs=8k count=1M oflag=direct
iops——读测试 dd if=./a.dat of=/dev/null bs=8k count=1M iflag=direct
bw——写测试 dd if=/dev/zero of=./a.dat bs=1M count=8k oflag=direct
bw——读测试 dd if=./a.dat of=/dev/null bs=1M count=8k iflag=direct
1.2 dd测试BufferIO
BufferIO主要出现在一些大文件读写的场景,由于使用内存做Cache所以读写性能上和DirectIO相比,通常会高很多,尤其是读,所以这个场景下我们仅关心bw即可。
用dd测试BufferIO的写时,需要增加一个conv=fdatasync,使用该参数,在完成所有读写后会调用一个sync确保数据全部刷到磁盘上(期间操作系统也有可能会主动flush),否则就是主要在测内存读写了;
另外还有一个参数是oflag=dsync,使用该参数也是走的BufferIO,但却是会在每次IO操作后都执行一个sync。
通常conv=fdatasync更符合大文件读写的场景,所以这里以其作为参数进行测试。
bw——写测试 dd if=/dev/zero of=./a.dat bs=1M count=8k conv=fdatasync
bw——读测试 dd if=./a.dat of=/dev/null bs=1M count=8k
2. 更专业的fio
fio是专门用于测试磁盘IO的工具,与dd相比那是要强大非常多,它可以用于测试顺序读写、随机读写、顺序混合读写、随机混合读写,并且可以调整IO并发量,在测试完成后还会生成一份测试报告,相当给力
本人写了一个使用fio自动测试并整理报告的脚本,安装好fio后即可直接使用。
测试脚本地址如下: https://gist.github.com/sennajox/3667757
3. iozone- Linux 测试磁盘IO性能的几种方法
- linux查看磁盘io的几种方法
- linux查看磁盘io的几种方法
- 磁盘IO性能:测试磁盘IO速度方法
- Linux 磁盘IO性能测试工具:FIO
- LINUX下磁盘IO性能测试评估
- linux测试磁盘读写IO速度的方法
- 测试云主机的磁盘IO性能
- 提高磁盘IO性能的方法:
- Linux下磁盘IO性能测试工具介绍
- LINUX下磁盘IO性能测试评估与优化
- Linux 如何测试 IO 性能(磁盘读写速度)
- Linux 如何测试 IO 性能(磁盘读写速度)
- Linux 如何测试 IO 性能(磁盘读写速度)
- Linux 如何测试 IO 性能(磁盘读写速度)
- 软件性能测试的几种方法
- Linux对磁盘的查看、分区、格式化、挂载及IO性能测试
- linux磁盘性能测试
- JavaScript权威指南-读书笔记3
- 游戏中的心理学(二):利用归因错误让玩家更爱你的游戏
- Tomcat优化配置
- 【程序设计】Poco::Thread
- 使用注解@Autowired出现错误
- Linux 测试磁盘IO性能的几种方法
- 在一个字符串中找到第一个只出现一次的字符
- 同一页面无法多次使用XmlHttp发起Ajax请求
- Android Selector 与 Shape 基本用法
- HDU 4879 ZCC loves march(并查集+set)
- ViewPagerFragmentDemo
- 有关ndk、jni开发流程、数据类型、数组操作
- POJ 2195 Going Home(网络流-费用流)
- iptables 源码分析