一站式下载学习分享平台 友情链接

网站首页源码插件 正文

测试云服务器的硬盘IO速度

皮皮娃学习网 2020-07-13 源码插件 31 ℃0 评论

使用云服务器有几年的时间了,期间购买过很多不同种类的服务器,一直在关注服务器的一个参数,就是硬盘读写速度。我在阿里云最早使用的是非IO优化的硬盘,后面这种类型的服务器没有了,全是高速硬盘,想再高就是SSD硬盘。Godaddy的VPS,貌似全是SSD硬盘。最近学习到一种方法,可以不精确的测试硬盘的IO读写速度,有点意思,特此分享。

可以使用dd命令来测试硬盘的IO读写速度。这种测试方法不准确,但是得到的大概的数据依然有参考价值,dd命令几乎存在于所有的Linux发行版本,因此用它来测试也很方便快捷。

dd命令的作用,就是指定输入和输出,指定读写区块大小,指定区块的个数,然后进行读写操作。这个命令在执行结束后,会给出一个每秒copy了多少数据的参数,这个参数就是我们的测试结果。

测试硬盘写的速度

$ dd if=/dev/zero of=testfile bs=4K count=10000 oflag=direct

10000+0 records in

10000+0 records out

40960000 bytes (41 MB, 39 MiB) copied, 1.36134 s, 30.1 MB/s

从伪设备/dev/zero拷贝数据并写入testfile,每次copy 4K,一共连续执行10000次(连续IO),oflag=direct指定了直接IO的方式(默认是写入系统缓存),最后的结果是平均每秒可写30MB数据。

注意if=/dev/zero,这是个伪设备,读取这个设备不会产生读真实硬盘的操作,因此以上命令基本上就全部是在写硬盘。

测试硬盘读的速度

$ dd if=testfile of=/dev/null bs=4K count=10000 iflag=direct

10000+0 records in

10000+0 records out

40960000 bytes (41 MB, 39 MiB) copied, 1.01615 s, 40.3 MB/s

基本上就是将测试写的命令反过来,从testfile(测试硬盘写速度时生成的文件)读取,每次4K,然后连续写入伪设备/dev/null(黑洞设备),10000次,iflag=direct指定直接IO,最后得到结果是平均每秒40MB的读取速度。

同样的道理,写入/dev/null,不会产生真正的硬盘写动作。

如何使用dd的测试结果?

我自己在测试的时候发现,如果将bs参数调大,得到的结果也会增大,而且增大的比例几乎一样。

因此,用dd命令的测试结果,不是准确的硬盘IO速度,但是作为横向比较是OK的。比如保持bs=4K,count=10000这两个参数不变,分别在不同的服务器上测试,大概就能发现那些服务器的硬盘要快,那些要慢,而且快慢的差距心里也会有点数。

云上小悟的硬盘IO速度(阿里云非IO优化硬盘):

xinlin@iZ239r252v4Z:~$ dd if=/dev/zero of=testfile bs=4K count=10000 oflag=direct

10000+0 records in

10000+0 records out

40960000 bytes (41 MB, 39 MiB) copied, 10.003 s, 4.1 MB/s

xinlin@iZ239r252v4Z:~$ dd if=testfile of=/dev/null bs=4K count=10000 iflag=direct

10000+0 records in

10000+0 records out

40960000 bytes (41 MB, 39 MiB) copied, 14.6019 s, 2.8 MB/s (读取尽然比写入还慢...)

Python笔记的硬盘IO速度(Godaddy的SSD硬盘):

[xinlin@s148-72-212-244 ~]$ dd if=/dev/zero of=testfile bs=4K count=10000 oflag=direct

10000+0 records in

10000+0 records out

40960000 bytes (41 MB) copied, 1.20173 s, 34.1 MB/s

[xinlin@s148-72-212-244 ~]$ dd if=testfile of=/dev/null bs=4K count=10000 iflag=direct

10000+0 records in

10000+0 records out

40960000 bytes (41 MB) copied, 1.03429 s, 39.6 MB/s

一台硅云香港服务器:

-bash-4.2$ dd if=/dev/zero of=testfile bs=4K count=10000 oflag=direct

10000+0 records in

10000+0 records out

40960000 bytes (41 MB) copied, 6.64809 s, 6.2 MB/s

-bash-4.2$ dd if=testfile of=/dev/null bs=4K count=10000 iflag=direct

10000+0 records in

10000+0 records out

40960000 bytes (41 MB) copied, 6.59073 s, 6.2 MB/s

看起来Godaddy的服务器硬盘IO速度完胜!

本文标题:测试云服务器的硬盘IO速度
本文链接:https://www.ppwxxw.com/post/340.html
作者授权:除特别说明外,本文由 皮皮娃学习网 原创编译并授权 皮皮娃学习网 刊载发布。
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。

Tags:SEO建站教程疑难杂症教程

< 皮皮娃学习网 >
如有密码均为:ppwxxw.com
天若有情天亦老、人间正道是沧桑
本站资源软件和源码 文章大部分为网上收集,如侵犯您的权利,请告知管理员,我们会及时删除,感谢理解.

站长邮箱:ppwxxw@ppwxxw.com

本文暂时没有评论,来添加一个吧(●'◡'●)


取消回复欢迎 发表评论:

搜索
网站分类
最新文章
标签