1. 程式人生 > 其它 >if 工具 -- 磁碟效能測試

if 工具 -- 磁碟效能測試

技術標籤: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 成功,並由作業系統決定快取中的資料什麼時候被寫入磁碟


使用示例

# 磁碟

[[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