开发者社区> 问答> 正文

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

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

展开
收起
a123456678 2016-06-22 11:25:09 3166 0
2 条回答
写回答
取消 提交回答
  • 用fio, 设direct=1

    2019-07-17 19:45:19
    赞同 展开评论 打赏
  • 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/秒左右.

    2019-07-17 19:45:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
上云时代业务压测和诊断最佳实践 立即下载
超大规模性能测试的云端方案及案例分享 立即下载
Cassandra 性能压测及调优实战 立即下载