测试VPS/服务器硬盘真实读写性能

测试VPS/服务器硬盘真实读写性能

为什么要测试

在购买和使用VPS或物理服务器时,我们可能会注意到一个问题:服务器的硬盘测试数据非常亮眼,性能很高。但在实际使用中却时常感觉到卡顿,特别是进行I/O密集型操作时(例如数据库的大量增删改查),服务器耗时很长。

这就涉及到硬盘缓存的问题了。许多服务商会使用SSD/NVME硬盘作为高速缓存盘,实际存储数据的硬盘为HDD/SSD。这就会导致我们使用一般的性能测试脚本所得出的数据为高速缓存盘的数据,这些数据非常好看。但实际使用时很多数据是需要真实写入硬盘后再进行下一步操作的,测试脚本均为一次性写入,使用本文提供的方法可测试VPS硬盘在实际应用场景下的速度。

如何测试

在VPS终端中输入以下命令,回车执行即可:

dd bs=64k count=4k if=/dev/zero of=test oflag=dsync

使用oflag=dsync 标识,dd会从/dev/zero中,每次读取4Kbytes数据,然后直接写入到硬盘当中,绕过所有缓存,重复此步骤,直到共读取并且写入了268 MB的数据。以此模拟I/O密集型操作,这也是MySQL官方推荐的测试方法。

下面是两个测试结果:

dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 40.8357 s, 6.6 MB/s
dd bs=64k count=4k if=/dev/zero of=test oflag=dsync
4096+0 records in
4096+0 records out
268435456 bytes (268 MB) copied, 2.1382 s, 126 MB/s

我们查看结尾的速度值,差距非常大。这两个商家均宣称采用了NVME硬盘,但很明显第一个大概率只是NVME高速缓存盘,HDD存储盘。

判断是否优秀

根据站长的经验,一般数据在 大于20MB/s 为合格,大于40MB/s 为普通,大于80MB/s 为优秀。如果测试数据仅为个位数,那么在实际使用过程当中可以明显感觉到硬盘速度较慢,数据库等I/O密集型任务耗时较长!

© 版权声明
THE END
喜欢就支持一下吧
点赞12 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容