dd 工具使用 SSD 順序寫效能測試

2022-05-22 12:06:10 字數 2569 閱讀 1562

dd 工具使用:

dd 也是我們經常使用到的磁碟測試工具,linux伺服器裝好系統之後,想要知道硬碟的讀寫是否能滿足服務的需要,如果不滿足硬碟的io就是服務的乙個瓶頸。我們可以使用dd命令簡單進行測試,更為專業的測試可以使用上面描述的fio 工具:

time有計時作用,dd用於複製,從if讀出,寫到of。if=/dev/zero不產生io,因此可以用來測試純寫速度。同理of=/dev/null不產生io,可以用來測試純讀速度。bs是每次讀或寫的大小,即乙個塊的大小,count是讀寫塊的數量。

dd測試純寫速度:

[root@docker sda]# time dd if=/dev/zero of=/mnt/sda/ddout bs=8k count=1000000

1000000+0 records in

1000000+0records out

8192000000 bytes (8.2 gb, 7.6 gib) copied, 43.1081 s, 190 mb/s

real 0m43.110s

user 0m0.207s

sys 0m3.914s

dd測試純讀速度:

[root@docker sda]# time dd if=/mnt/sda/ddout of=/dev/null bs=8k count=1000000

1000000+0 records in

1000000+0records out

8192000000 bytes (8.2 gb, 7.6 gib) copied, 1.30322 s, 6.3 gb/s

real 0m1.306s

user 0m0.199s

sys 0m1.102s

dd 測試讀寫速度,就是讀當前磁碟檔案,再寫入當前磁碟之中。一定程度上,複製量越大,讀寫的時間越長,統計的結果越準。但是測試結果資訊量較少,只能作為參考量,更多讀寫模式和測試資訊:可以使用dd 命令引數來配置:

使用conv, iflag, oflag 三個變數可以配置dd 命令的複製模組式,讀取模式和寫入模式;

conv 關鍵symbol:

fdatasync

physically write output filedata before finishing

fsync likewise, but also write metadata

iflag, oflag 關鍵symbol:

dsync  use synchronized i/o fordata

sync likewise, but also for metadata

direct use direct i/o for data

dd 命令繞過系統cache:

如果要規避掉檔案系統cache,直接讀寫,不使用buffer cache,需做這樣的設定

iflag=direct,nonblock

oflag=direct,nonblock

dd 命令三種經典使用方法:

dd if=/dev/zero of=test bs=64k count=16k  是不準確的,可能有資料存在核心快取中,沒有同步到磁碟上。對於關鍵資料應該加上fsync標識,防止關鍵資料丟失;

dd if=/dev/zero of=test bs=64k count=16k conv=fsync 較為穩妥,但是時間用時較長,他在dd結束前會寫資料和檔案元資料到磁碟;

dd if=/dev/zero of=test bs=64k count=4k oflag=dsync or sync  每寫一次就寫一次磁碟,在實際操作中,可以聽到磁碟響聲,用時較長;

更多dd 命令詳細使用方法,可以參考man pages. dd 命令可以用來製作啟動盤,請參見博文 linux (fedora 28) 製作啟動u盤,啟動盤

ssd 效能測試:

pcie-ssd optane:dd if=/dev/urandom of=./optane.bin bs=256k count=102400  (順序寫 25gb的隨機資料) 

m.2-stat-ssd:dd if=/dev/urandom of=./m2sata.bin bs=256k count=102400  (順序寫 25gb的隨機資料) 

m.2-nvme-ssd:dd if=/dev/urandom of=./m2nvme.bin bs=256k count=102400  (順序寫 25gb的隨機資料) 

hdd:dd if=/dev/urandom of=./sata.bin bs=256k count=102400  (順序寫 25gb的隨機資料) 

嵌入式 使用dd命令製作燒寫檔案

1.使用dd命令製作燒寫檔案 環境 bootargs mem 64m console ttyama0,115200 root dev mtdblock2 rootfstype jffs2 mtdparts hi sfc 512k boot 3m kernel 2560k rootfs 10m ker...

dm365 SD卡燒寫工具使用

目標平台 tms320dm365 開發平台 ubuntu10.04 首先插入sd卡,在 dev 下找到sd卡的裝置節點號,我的是 dev sdb,有乙個分割槽 dev sdb1,我是通過把 dev sdb1掛載到乙個臨時目錄檢視裡面的內容確認的,確認後解除安裝 dev sdb1 mount dev ...

使用golang寫的錯誤碼生成工具

工具說明 遊戲服務端採用golang語言,而前端unity是csharp.在定義通訊訊息錯誤碼時,為了避免前後端不一致同時不用寫2份錯誤碼列舉檔案的麻煩.統一把錯誤碼定義寫在文字檔案中,使用該生成工具生成對應的cs和go檔案供c s端用.錯誤碼定義的文字檔案結構 最終生成的cs檔案 生成的go檔案 ...