如何排除linux系统的读写缓存进行磁盘性能测试?

发布于 2022-09-01 12:57:15 字数 209 浏览 11 评论 0

想测试一下我的ssd硬盘能达到多少的iops,但是读写的时候因为linux系统会自动将读写操作进行cache,也就没法真实的验证性能了,有没有办法可以把这个特性先关闭? 写操作还好办,可以每次写入之后调用fsync强制写入磁盘,读取有类似的方法么?
补充一下,我不是想直接用现有的工具进行测试,我是自己写了一个读写io的程序(c++),想测试一下对应的iops

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

╭ゆ眷念 2022-09-08 12:57:16

没找到完全关闭的方法,读缓存可以通过 echo 3 > /proc/sys/vm/drop_caches 暂时清除

〃温暖了心ぐ 2022-09-08 12:57:16

crontab
0 */1 * * * root sync && echo 3 > /proc/sys/vm/drop_caches

一指流沙 2022-09-08 12:57:16

dd 命令 后面加参数 ,具体可以Google 一下.或者,测试数据是内存的两倍

千纸鹤 2022-09-08 12:57:16

hdparm -W
hdparm -t

你在我安 2022-09-08 12:57:16

time dd if=/dev/zero of=test bs=64k count=512 oflag=dsync
参数解释:
if 输入文件
of 输出文件
bs 一次读取和写入的bytes字节数
count 写入数据块的次数,也可以设为512.
oflag=dsync 强制每次写入物理硬盘,也就是不写入缓存,直接写硬盘
执行完毕后将在当前目录生成一个32M(64*512)的test文件.
固态硬盘达到70MB/秒,机械硬盘估计也就2MB/秒左右.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文