Linux下磁盘io测试怎么用
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下Linux下磁盘io测试怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!这两天在测试Dell的PS6
千家信息网最后更新 2026年11月02日Linux下磁盘io测试怎么用
小编给大家分享一下Linux下磁盘io测试怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
这两天在测试Dell的PS6000存储,在linux下也懒得去找测试工具了,就直接使用dd命令进行I/O测试,但因为需要测试的数据很多,从512b到4M的块,每一档都要进行读写的测试,这要是人肉来做,那就太累了,于是就产生了下面这个脚本。
本脚本使用perl编写,根据测试用例,完成每次读或写测试。
本脚本共有3个参数,两个是必选参数,一个是可选参数
-r 测试读性能
-w 测试写性能
-c 可选参数,用于关闭文件系统的缓存
#!/bin/evn perluse JSON;use Data::Dumper;use Cwd;use File::Basename;our $cache_flag = '';# 获取脚本所在目录my $cwd;if ( $0 =~ m{^/} ) {$cwd = dirname($0);}else {my $dir = getcwd();$cwd = dirname("$dir/$0");}# 获得参数if ( @ARGV < 1 ) {&usage;exit;}elsif ( @ARGV == 1 ) {if ( ( $ARGV[0] ne "-r" ) && ( $ARGV[0] ne "-w" ) ) {print "Unrecognized Option\n";&usage;exit;}}elsif ( @ARGV == 2 ) {if ( $ARGV[0] eq "-r" ) {$cache_flag = "iflag=direct,nonblock";}elsif ( $ARGV[0] eq "-w" ) {$cache_flag = "oflag=direct,nonblock";}elsif ( ( $ARGV[0] ne "-r" ) || ( $ARGV[0] ne "-w" ) ) {print "Unrecognized Option\n";&usage;exit;}}my $opt = $ARGV[0];# 使用帮助sub usage {print "Usage: iotest.pl [OPTION] [OPTION]\n";print "\n";print "-r\texecute read test\n";print "-w\texecute write test\n";print "-c\tiotest with local filesystem cache\n\n";}# 检查测试文件是否存在sub check_file {if ( !-e "./iotest" ) {print "The test file dose not exist,please run write test first\n";exit;}}# 打开测试用例open FH, "<$cwd/iotest.json";# Main #while () {chomp;$json = new JSON;# 将测试用例的json格式转成hashmy %strings = %{ $json->decode($_) };if ( $opt eq "-r" ) {&check_file;while ( ( $key, $value ) = each %strings ) {open rfh, '>>iotestr.log';my $cmd ="/bin/dd if=./iotest of=/dev/null bs=$key count=$value $cache_flag >> iotestr.log 2>&1";print rfh "IOTest Block: $key\n";`$cmd`;print rfh "\n";}}elsif ( $opt eq "-w" ) {while ( ( $key, $value ) = each %strings ) {open wfh, '>>iotestw.log';my $cmd ="/bin/dd if=/dev/zero of=./iotest bs=$key count=$value $cache_flag >> iotestw.log 2>&1";print wfh "IOTest Block: $key\n";`$cmd`;print wfh "\n";}}}下面来看下测试用例的编写格式。这里蚊子采用了json串的方式,这样便于perl读取,文件内容如下
{"512":"4096000","1K":"2048000","2K":"1024000","4K":"512000","8K":"256000","16K":"128000","32K":"64000","64k":"32000","128k":"16000","256k":"8000","512k":"4000","1M":"2000","2M":"1000","4M":"500"}该文件主要就分两个字段,冒号前的是块大小,冒号后的count数,通过块大小和count数就能创建文件,蚊子这里统一生成的是2G大小的文件。该文件保存文件名为iotest.json,将测试用例和测试脚本放到同一个目录下即可。使用方面很简单,进入到要测试的磁盘或目录下,执行
#perl /dir/to/iotest.pl –w
即可完成开启文件系统换的磁盘写测试。程序执行完毕后会在当前目录下创建.log文件用于记录测试结果,下图是蚊子测试的结果,我做成了表格。

以上是"Linux下磁盘io测试怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
测试
文件
参数
脚本
磁盘
目录
内容
大小
篇文章
蚊子
两个
冒号
性能
系统
结果
帮助
一档
下图
不怎么
人肉
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手磨咖啡
互联网科技园
喔噻互联网科技有限公司
新华互联网科技
互联网科技工作委员会主任
高科技互联网
互联网电商科技
朗新科技与工业互联网
嘟嘟瓜互联网科技
广西互联网科技公司
互联网科技公司介绍
银川新华互联网科技学校地址
汽车互联网创新科技园
互联网金融中的现代科技
岳阳华臻互联网科技有限公司
荆州市昕露互联网络科技有限公司
华中科技大学互联网的牛人
三亚科技创新互联网基地
恒生科技指数 中概互联网
现代科技的标志之一的互联网
互联网科技会
北京互联网科技
赫美联合互联网科技
新华互联网科技校企合作
互联网 科技馆
广州恒生互联网科技有限
玉溪互联网科技怎么选
企晟互联网信息科技有限公司
广州燕处互联网科技有限公司
华人运通互联网科技公司