一般来说,我们这评测主机的时候,一般要测试三方面的性能,分别是CPU、带宽和磁盘IO。前几天给大家介绍过speedtest-cli带宽测速工具,今天给大家介绍以下dd命令。
我们经常用两个指标来评测磁盘的性能:IOPS和吞吐量(throughput)。IOPS是Input/Output Operations Per Second的缩写,就是每秒能读写多少次;吞吐量就是每秒能读写多少数据,就是我们说的磁盘速度。
dd命令不能作为精准的磁盘吞吐量测试工具,不同的块大小,测试的结果可能会不一样,可以用来当作简单、快速的测试工具使用。
dd命令基本语法解释
if=/dev/zero:用来设置dd命令读取的输入文件。
of=/tmp/wker:用来设置dd命令写入文件。
bs=1M:bs=block-size,设置dd命令读取的块的大小。单位可以是K、M和G,如果不设置单位,默认是字节。
count=1024:dd命令读取的块的个数。
oflag=dsync:使用同步I/O,这个选项能够帮助你去除缓存的影响,可以获得精准的结果。
使用dd命令测试IO性能
测试读取性能:
dd if=/dev/vda1 of=/dev/null bs=64k count=16000 oflag=dsync
我们可以利用df命令查看磁盘,确定输入的文件。/dev/null是一个伪设备,写入到该文件不会对IO产生影响。
测试写入性能:
dd if=/dev/zero of=/tmp/wker bs=64k count=16000 oflag=dsync
/dev/zero也是一个伪设备,只产生空字符流,读取该文件不会对IO产生影响。
下图是一台阿里云轻量服务器的IO性能测试结果:
下图是一台Vultr 2.5美金的机器的IO测试结果: