Linux下磁盘io测试怎么用
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,小编给大家分享一下Linux下磁盘io测试怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!这两天在测试Dell的PS6
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
deepin数据库工具
服务器双网卡路由设置
数据库修复大师激活
视频会议软件开发市场需求大
windows建立ftp服务器
莱芜高校党建软件开发专业制作
服务器管理与维护作业
手机应用软件开发现状
删除数据库表所有数据
常州java软件开发培训班
无线网络技术导论pdf
禅游科技服务器开发
网络技术营销合作模式
语音数据库标注规范
数据库技术的工作方向
安徽通用软件开发出厂价格
网络安全态势推演
外文历史文献免费数据库
网络技术各题分值
消防部队网络安全管理制度
数据库技术和多媒体技术
数据库设计器修改索引
网络技术渠道事例
大唐仙妖劫九游服务器
ps3有没有服务器
苹果5连接服务器时出现问题
vb数据库怎么操作
数据库与信息技术管理
日本网络安全研究机构
监控服务器一天多少台