VPS主机磁盘IO的好坏直接影响到VPS主机性能的高低。对于测试VPS主机的性能,我们有非常多的脚本工具,例如:VPS主机速度和性能综合测试工具整理汇总中我们就分享了不少的脚本工具,可以快速地测试VPS主机的CPU、内存和带宽等。
不过,有好友反馈说对于VPS主机的磁盘IO测试,脚本测出来的结果差别比较大,甚至直到建站时才发现购买的VPS主机的IO太低,严重影响了性能。这篇文章就来分享一下VPS真实IO检测工具:DD、hdparm、Sysbench和FIO。
一、DD命令工具
dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync
dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
以上代码中conv=fdatasync与oflag=dsync的区别在于:sync函数只是将所有修改过的块缓冲区排入写队列,然后就返回,它并不等待实际写磁盘操作结束。fsync函数只对由文件描述符filedes指定的单一文件起作用,并且等待写磁盘操作结束,然后返回。
所以,不带缓存的IO读写测试才是硬盘的真实读写速度,一般来说低于30MB/s算是慢的了。
二、Hdparm工具
Hdparm是Linux的命令行程序,用于设置和查看ATA硬盘驱动器硬件参数并测试性能。首先是安装:
安装 hdparm
yum install hdparm -y
#apt install hdparm -y
然后是找出当前的硬盘。
fdisk -l
接着就可以开始测试了。命令如下:
sudo hdparm -tT /dev/sda2
测试结果如下图:
三、Sysbench工具
Sysbench是一款压力测试工具,可以测试系统的硬件性能,也可以用来对数据库进行基准测试。sysbench 支持的测试有CPU运算性能测试、内存分配及传输速度测试。首先是安装:
sudo apt install sysbench
然后是生成需要的测试文件,完成后会在当前目录下生成很多小文件。
sysbench --test=fileio --num-threads=20 --file-total-size=1G --file-test-mode=rndrw prepare
测试执行:
sysbench --test=fileio --num-threads=20 --file-total-size=1G --file-test-mode=rndrw run
测试完了,就可以看到相关的读写速度了。
清理测试时生成的文件。
sysbench --test=fileio --num-threads=20 --file-total-size=1G --file-test-mode=rndrw cleanup
四、Fio测试工具
Fio是Linux下开源的一款IOPS测试工具,主要用来对磁盘进行压力测试和性能验证。它可以产生许多线程或进程来执行用户特定类型的I/O操作,通过编写作业文件或者直接命令去执行测试动作,相当于是一个 多线程的io生成工具,用于生成多种IO模式来测试硬盘设备的性能。
首先是安装:
sudo apt install fio
测试读命令:
fio --name TEST --eta-newline=5s --filename=temp.file --rw=read --size=2g --io_size=10g --blocksize=1024k --ioengine=libaio --fsync=10000 --iodepth=32 --direct=1 --numjobs=1 --runtime=60 --group_reporting
文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/10215