使用dd工具對磁盤RAID5和10進行I/O性能測試


很多情況下大家在對於理論深信不疑,理論是有前提條件的,不是所有的情況下都是正確的。恰逢公司有服務器,故進行了磁盤性能測試,當然測試的結果也只是順序I/O性能測試(dd機制決定的)。

前提條件:(DELL R630 物理機測試,內存64G)
RAID5 5塊盤(600G SAS)+ 1塊(GHS)
RAID10 6塊盤(600G SAS)+ 0塊(GHS)
*測試的時候為了保證測試結果的真實性,請確保測試文件的大小要遠遠大於內存容量。

一、磁盤寫性能測試
#dd if=/dev/zero of=/yc/itest.iso bs=1G count=1000 conv=fdatasync

#dd if=/dev/zero of=/yc/itest.iso bs=1G count=1000 conv=fdatasync

 

二、磁盤讀性能測試
#dd if=/yc/itest.iso of=/dev/zero bs=1G count=1000 iflag=direct

 

附錄:
一般情況下,我們都是使用dd命令創建一個大文件來測試磁盤的讀寫速度。但是,很多人都存在一個誤區,以為dd命令顯示的速度就是磁盤的寫入速度,其實這是不然的。我們分析一下dd命令是如何工作的。
1. dd if=/dev/zero of=/xiaohan/test.iso bs=1024M count=1
這種情況下測試顯示的速度是dd命令將數據寫入到內存緩沖區中的速度,只有當數據寫入內存緩沖區完成后,才開始將數據刷入硬盤,所以這時候的數據是無法正確衡量磁盤寫入速度的。

2. dd if=/dev/zero of=/xiaohan/test.iso bs=1024M count=1;sync
這種情況下測試顯示的跟上一種情況是一樣的,兩個命令是先后執行的,當sync開始執行的時候,dd命令已經將速度信息打印到了屏幕上,仍然無法顯示從內存寫硬盤時的真正速度。

3. dd if=/dev/zero of=/xiaohan/test.iso bs=1024M count=1 conv=fdatasync
這種情況加入這個參數后,dd命令執行到最后會真正執行一次“同步(sync)”操作,所以這時候你得到的是讀取這128M數據到內存並寫入到磁盤上所需的時間,這樣算出來的時間才是比較符合實際的。

4. dd if=/dev/zero of=/xiaohan/test.iso bs=1024M count=1 oflag=dsync
這種情況下,dd在執行時每次都會進行同步寫入操作。也就是說,這條命令每次讀取1M后就要先把這1M寫入磁盤,然后再讀取下面這1M,一共重復128次。這可能是最慢的一種方式,基本上沒有用到寫緩存(write cache)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM