想测试一下我的ssd硬盘能达到多少的iops,但是读写的时候因为linux系统会自动将读写操作进行cache,也就没法真实的验证性能了,有没有办法可以把这个特性先关闭? 写操作还好办,可以每次写入之后调用fsync强制写入磁盘,读取有类似的方法么?补充一下,我不是想直接用现有的工具进行测试,我是自己写了一个读写io的程序(c++),想测试一下对应的iops
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
找不到完全關閉的方法,讀取快取可以透過 echo 3 > /proc/sys/vm/drop_caches 暫時清除
定時任務 0 */1 * * * 根同步 && echo 3 > /proc/sys/vm/drop_caches
dd 指令 後面加參數 ,具體可以Google 一下.或者,測試資料是記憶體的兩倍
hdparm -W hdparm -t
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/秒左右.
找不到完全關閉的方法,讀取快取可以透過 echo 3 > /proc/sys/vm/drop_caches 暫時清除
定時任務
0 */1 * * * 根同步 && echo 3 > /proc/sys/vm/drop_caches
dd 指令 後面加參數 ,具體可以Google 一下.或者,測試資料是記憶體的兩倍
hdparm -W
hdparm -t
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/秒左右.