if 工具 -- 磁碟效能測試
阿新 • • 發佈:2021-01-09
技術標籤:Linux 基礎運維
文章目錄
命令
# 基礎命令, 但是這樣結果不準, 需要根據場景新增引數
# 寫測試
time dd if=/dev/zero of=testfile bs=8k count=125000
# 讀測試
time dd if=testfile of=testfile2 bs=8k
引數
-
conv
- fsync – 先記錄到記憶體, 後寫入到磁碟
-
oflag
- sync – 每接收到一次 IO, 就寫一次, 同時寫元資料
- dsync – 每接收到一次 IO, 就寫一次
-
繞開 cache / buffer
- iflag=direct,nonblock
- oflag=direct,nonblock
- iflag=cio
- oflag=cio
-
direct 模式就是把寫入請求直接封裝成io 指令發到磁碟; 非direct 模式,就把資料寫入系統快取,然後就認為io 成功,並由作業系統決定快取中的資料什麼時候被寫入磁碟
使用示例
- 測試硬碟和記憶體盤的 I/O 速度
# 磁碟
[[email protected] test]# time dd if=/dev/zero of=a.dbf bs=8k count=125000 conv=fsync
記錄了125000+0 的讀入
記錄了125000+0 的寫出
1024000000位元組(1.0 GB)已複製,33.4099 秒,30.6 MB/秒
real 0m33.412s
user 0m0.128s
sys 0m0.999s
[ [email protected] thc]# rm -rf a.dbf
[[email protected] thc]# time dd if=/dev/zero of=a.dbf bs=8k count=125000 conv=fsync
記錄了125000+0 的讀入
記錄了125000+0 的寫出
1024000000位元組(1.0 GB)已複製,9.99849 秒,102 MB/秒 # 說明這個引數會使命令從快取存取資料
real 0m10.001s
user 0m0.121s
sys 0m1.233s
[[email protected] thc]# time dd if=a.dbf of=b.dbf bs=8k
記錄了125000+0 的讀入
記錄了125000+0 的寫出
1024000000位元組(1.0 GB)已複製,1.07546 秒,952 MB/秒
real 0m1.077s
user 0m0.128s
sys 0m0.949s
# 記憶體盤
[[email protected] ramdisk]# time dd if=/dev/zero of=a.dbf bs=8k count=125000 conv=fsync
記錄了125000+0 的讀入
記錄了125000+0 的寫出
1024000000位元組(1.0 GB)已複製,1.5614 秒,656 MB/秒
real 0m1.564s
user 0m0.136s
sys 0m1.407s
[[email protected] ramdisk]# time dd if=a.dbf of=b.dbf bs=8k
記錄了125000+0 的讀入
記錄了125000+0 的寫出
1024000000位元組(1.0 GB)已複製,1.01944 秒,1.0 GB/秒
real 0m1.021s
user 0m0.122s
sys 0m0.899s