perl

脚本分享–linux下磁盘io测试

这两天在测试Dell的PS6000存储,在linux下也懒得去找测试工具了,就直接使用dd命令进行I/O测试,但因为需要测试的数据很多,从512b到4M的块,每一档都要进行读写的测试,这要是人肉来做,那就太累了,于是就产生了下面这个脚本。

本脚本使用perl编写,根据测试用例,完成每次读或写测试。
本脚本共有3个参数,两个是必选参数,一个是可选参数
-r 测试读性能
-w 测试写性能
-c 可选参数,用于关闭文件系统的缓存

下面来看下测试用例的编写格式。这里蚊子采用了json串的方式,这样便于perl读取,文件内容如下

该文件主要就分两个字段,冒号前的是块大小,冒号后的count数,通过块大小和count数就能创建文件,蚊子这里统一生成的是2G大小的文件。该文件保存文件名为iotest.json,将测试用例和测试脚本放到同一个目录下即可。使用方面很简单,进入到要测试的磁盘或目录下,执行

#perl /dir/to/iotest.pl –w  即可完成开启文件系统换的磁盘写测试。程序执行完毕后会在当前目录下创建.log文件用于记录测试结果,下图是蚊子测试的结果,我做成了表格。

Related Post

11 Comments

  1. 执行到时候报错
    malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before “(end of string)”) at iotest.pl line 73, line 1.

  2. 我测试了一下,但不知道为什么不行呢?出现下面的错误提示。
    [root@yufei ~]# perl ./iotest.pl -w
    Can’t locate JSON.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at ./iotest.pl line 3.
    BEGIN failed–compilation aborted at ./iotest.pl line 3.
    希望能帮忙解决一下,谢谢!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.