Linux下磁盘io测试怎么用
发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,小编给大家分享一下Linux下磁盘io测试怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!这两天在测试Dell的PS6
千家信息网最后更新 2024年09月21日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安全错误
数据库的锁怎样保障安全
db2+连接+数据库+慢
实况21ps4无法连接服务器
腾达创艺网络技术
阿里云服务器提供那些服务
超市数据库管理系统设计
小程序前端数据写入数据库
discuz服务器大小
用友服务器可以输单吗
网络安全理论知识题 电信日主题
云服务器怎么手机控制
轮椅公司服务器
数据库建立通讯录流程
关于网络安全宣传的电影
app可视化开发软件开发
java数据库类型转换
网络安全共性教学
杭州攸创网络技术有限公司
速运app软件开发
沧州oa办公系统网络技术
my数据库自定义排序
群晖网络存储服务器连接端口
vc与数据库技术教程
it科技互联网电子商务
数据库创建表默认表空间
序列怎么和数据库关联
app可视化开发软件开发
数据软件开发服务以客为尊
怎么讲网络安全班会
边线科技互联网
wps匹配表格的数据库