c++ - 如何排除linux系统的读写缓存进行磁盘性能测试?
高洛峰
高洛峰 2017-04-17 13:24:08
0
5
1059

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

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回覆(5)
巴扎黑

找不到完全關閉的方法,讀取快取可以透過 echo 3 > /proc/sys/vm/drop_caches 暫時清除

洪涛

定時任務
0 */1 * * * 根同步 && echo 3 > /proc/sys/vm/drop_caches

迷茫

dd 指令 後面加參數 ,具體可以Google 一下.或者,測試資料是記憶體的兩倍

刘奇

hdparm -W
hdparm -t

Ty80

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/秒左右.

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板