簡單測試磁盤讀寫速度----dd命令

首先了解兩個特殊設備
       /dev/null 僞設備,回收站.寫該文件不會產生IO
       /dev/zero 僞設備,會產生空字符流,對它不會產生IO

借鑑網上說法:
conv=fsync Synchronize output data and metadata just before finishing 意思也就是在dd命令結束前同步data和metadata,那就是不是每一次寫都同步一次咯,也就是如果我們在dd命令中寫了100次,他可能是等到最後的時候才把他們同步到磁盤。
oflag=dsync Use synchronized I/O for data. For the output file, this forces a physical write of output data on each write,就是他是每一次寫都得等到這一次寫寫到了磁盤才進行下一個寫,也就是如果我們使用dd寫100次,他每次寫都是寫到磁盤後才進行下一次寫的。所以這樣當然要比conv=fsync慢一些吧。那麼自己感覺如果只是寫一次的話,兩者應該是差別不大的。

如果要規避掉文件系統cache,直接讀寫,不使用buffer cache,需做這樣的設置
iflag=direct,nonblock
oflag=direct,nonblock
iflag=cio
oflag=cio
direct 模式就是把寫入請求直接封裝成io 指令發到磁盤

a.測試磁盤的IO寫速度

 time dd if=/dev/zero of=test.dbf bs=1000k count=10000  oflag=direct 

####### 上面代碼如果要測試實際速度 還要在末尾加上 oflag=direct測到的纔是真實的IO速度

b.測試磁盤的IO讀速度

 dd if=test.dbf bs=10k count=100000 of=/dev/null 

####### 表示每次寫入/讀取10k的數據,執行100000次

dd命令可以通用,但不夠專業,也沒有考慮到緩存和物理讀的區分,測試的數據也是僅作參考,不能算是權威。

常用語法:dd if= of= bs= skip= seek= conv=
常用參數有:
       &nbspbs=n,block size,每次讀取 n bytes 寫入,可與 count 聯用;
       &nbspibs=n,一次讀入 bytes 個字節 (default is 512);
       &nbspobs=n,一次性寫 n bytes 個字節 (default is 512);
       &nbspbs 可以同時設置上邊兩個參數;
       &nbspcbs=n,一次轉換 n 個 bytes,即轉換緩衝區大小。;
       &nbspcount=n, bs 操作的次數,僅拷貝 n 個塊,如 dvd:        &nbspbs=1M count=4430;
       &nbspskip=n,指 if 後面的原文件跳過 n bytes 再開始讀取;
       &nbspseek=n,指 of 後面的目標文件跳過 n bytes 再開始寫入;

[root@my1-222 ~]# time dd if=/dev/zero of=test.dbf bs=8k count=300000
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB) copied, 2.50417 s, 981 MB/s

real    0m2.537s
user    0m0.023s
sys    0m2.070s
[root@my1-222 ~]# time dd if=/dev/zero of=test.dbf bs=8k count=300000 oflag=direct
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB) copied, 25.4357 s, 96.6 MB/s

real    0m25.550s
user    0m0.010s
sys    0m13.655s
[root@my1-222 ~]#

[root@my1-222 ~]#  dd if=test.dbf bs=8k count=300000 of=/dev/null
300000+0 records in
300000+0 records out
2457600000 bytes (2.5 GB) copied, 1.94773 s, 1.3 GB/s
[root@my1-222 ~]# 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章