linux準確測量U盤讀寫速度
linux準確測量U盤讀寫速度
## 掛載U盤 mount -t vfat /dev/sda1 /var/sdcard ## 測試寫入100MB速度 sync;time dd if=/dev/zero of=/var/sdcard/largefile bs=10k count=10240;time sync ## 測試讀取100MB速度 (清除緩存) sync;echo 3 > /proc/sys/vm/drop_caches;time dd if=/var/sdcard/largefile of=/dev/null bs=10k
上述測試方法就相對比較準確!
寫入100MB時,先刷新flash后,才測量dd命令生成100MB到緩存(同時也有部分正在寫入flash)的時間Tdd,最后測量sync的時間Tsync,這個時間即為從緩存寫到U盤的時間。平均寫入速度為:100MB/(Tdd+Tsync)。
測量讀取速度時,亦先sync把緩存中的雜數據寫寫進flash,并且清除緩存。最后才記錄dd命令從U盤寫入RAM的時間Tdd,因為/dev/null為tmpfs,沒必要計算Tsync,平均讀取速度為:100MB/Tdd。
另外,time命令算出的時間要使用real對應的值。
————————————————
————————————————
1. dd命令簡述:
if=輸入文件, of=輸出文件, ibs=一次讀取字節數, obs=一次寫入字節數, bs=設置一次讀取寫入的字節數, skip=跳過的bs數, count=拷貝的塊數
2. 使用/dev/null和/dev/zero
1. 把/dev/null看作"黑洞", 它等價于一個只寫文件, 所有寫入它的內容都會永遠丟失
2. /dev/zero是一個偽文件, 但它實際上產生連續不斷的null的流
## 切入u盤目錄,測試寫入速度 # dd if=/dev/zero of=./largefile bs=8k count=10 10+0 records in 10+0 records out 81920 bytes (82 MB) copied, 11.0626 s, 7.4 MB/s ## 測試讀取速度 (清除緩存) # sudo sh -c "sync && echo 3 > /proc/sys/vm/drop_caches" # dd if=./largefile of=/dev/null bs=8k 8+0 records in 8+0 records out 65536 bytes (66 MB) copied, 2.90366 s, 22.6 MB/s
實測例子:
sync;time dd if=/dev/zero of=/media/sda1/largefile bs=10k count=1024;time sync 1024+0 records in 1024+0 records out 10485760 bytes (10 MB, 10 MiB) copied, 0.272702 s, 38.5 MB/s real 0m0.282s user 0m0.000s sys 0m0.270s real 0m0.474s user 0m0.000s sys 0m0.010s root@imx6qsabresd:/media/sda1# sync;echo 3>/proc/sys/vm/drop_caches;time dd if=/media/sda1/largefile of=/dev/null bs=10k 1024+0 records in 1024+0 records out 10485760 bytes (10 MB, 10 MiB) copied, 0.0330447 s, 317 MB/s real 0m0.042s user 0m0.000s sys 0m0.040s
原文鏈接:https://blog.csdn.net/litao31415/article/details/99683790
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。