云服务器的硬盘读写速度直接影响了服务器性能,尤其对于本地数据库用户来说,检索查询数据库更是直接影响用户体验。那么面对各个品牌的云服务器,怎么简单检测硬盘读写速度就显得更为重要。除了用脚本测评外还可以用Linux中的dd命令来测评,使用dd命令的优势是不会残留文件,特别是有“洁癖”的童鞋更为适合。
测试云服务器硬盘读写速度说明
dd命令的作用,就是指定输入和输出,指定读写区块大小,指定区块的个数,然后进行读写操作。简单点说就是一个底层文件复制命令,只不过这个复制命令可以指定块的大小,并进行指定格式的转换。这个命令在执行结束后,会给出一个每秒复制了多少数据的参数,这个参数就是我们的测试结果。下面是测试时用到的参数:
if=文件名:输入文件名,默认为标准输入。即指定源文件;
of=文件名:输出文件名,默认为标准输出。即指定目的文件;
bs=bytes:设置读入/输出的块大小为bytes个字节;
count=#:复制多个少bs;
/dev/zero:是一个伪文件,你可你用它来初始化文件。该设备无穷尽地提供0,可以使用任何你需要的数目。它可以用于向设备或文件写入字符串0。
/dev/null:它是空设备,也称为位桶(bit bucket)我们都亲切的称他为“黑洞”。任何写入它的数据都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。
测试云服务器硬盘写的速度
dd if=/dev/zero of=testfile bs=64K count=10000 oflag=direct
说明:从伪设备/dev/zero拷贝数据并写入testfile,每次写 64K,一共连续执行10000次(连续IO),oflag=direct指定了直接IO的方式(默认是写入系统缓存),最后的结果是平均每秒可写数据的大小。if=/dev/zero是个伪设备,读取这个设备不会产生读真实硬盘的操作,因此以上命令基本上就全部是在写硬盘。
示例:
[root@ecs-kc1-large-2-linux-20200218093124 ~]# dd if=/dev/zero of=testfile bs=64K count=10000 oflag=direct
10000+0 records in
10000+0 records out
655360000 bytes (655 MB, 625 MiB) copied, 13.7661 s, 47.6 MB/s
测试云服务器硬盘读的速度
dd if=testfile of=/dev/null bs=64K count=10000 iflag=direct
说明:测试硬盘读的速度基本上就是将测试写的命令反过来,从testfile(测试硬盘写速度时生成的文件)读取,每次64K,然后连续写入伪设备/dev/null(黑洞设备),一共连续执行10000次,iflag=direct指定了直接IO的方式,最后得到结果是平均每秒读取速度的大小。同样的道理,写入/dev/null,不会产生真正的硬盘写动作。
示例:
[root@ecs-kc1-large-2-linux-20200218093124 ~]# dd if=testfile of=/dev/null bs=64K count=10000 iflag=direct
10000+0 records in
10000+0 records out
655360000 bytes (655 MB, 625 MiB) copied, 5.19514 s, 126 MB/s
测试云服务器硬盘读写速度说明
1、虽然用dd命令的测试结果,不是准确的硬盘IO速度,但是保证bs=64k,count=10000这两个参数不变的情况下,在不同品牌云服务器之间比较还是很有借鉴意义,对于硬盘读写速度的对比也是一目了然。
2、测试得到的读取速度和bs数值大小有直接关系,如果将bs数值调大,得到的结果也会增大,反之如果bs数值调小,得到的结果也会减少。
本站所有内容,如有版权、侵权等问题,请及时联系本站做删除。发布者:聚云网,转载请注明出处: https://www.juyun.top/5032.html