轉載至:https://www.cnblogs.com/sylar5/p/6649009.html
time+dd 測磁盤讀寫速度
1、先熟悉兩個特殊的設備及一些相關參數:
1) time有計時作用,dd用於復制,從if讀出,寫到of;
2) if=/dev/zero(產生字符)不產生IO,因此可以用來測試純寫速度;
3) 同理of=/dev/null(回收站、無底洞)不產生IO,可以用來測試純讀速度;
4) 將/tmp/test拷貝到/var則同時測試了讀寫速度;
5) bs是每次讀或寫的大小,即一個塊的大小,count是讀寫塊的數量。
當寫入到驅動盤的時候,我們簡單的從無窮無用字節的源 /dev/zero 讀取,當從驅動盤讀取的時候,我們讀取的是剛才的文件,並把輸出結果發送到無用的 /dev/null。在整個操作過程中, DD 命令會跟蹤數據傳輸的速度並且報告出結果。
2、測試磁盤寫能力
time dd if=/dev/zero of=/testw.dbf bs=4k count=100000
因為/dev//zero是一個偽設備,它只產生空字符流,對它不會產生IO,所以,IO都會集中在of文件中,of文件只用於寫,所以這個命令相當於測試磁盤的寫能力。命令結尾添加oflag=direct將跳過內存緩存,添加oflag=sync將跳過hdd緩存。
3、測試磁盤讀能力
time dd if=/dev/sdb of=/dev/null bs=4k
因為/dev/sdb是一個物理分區,對它的讀取會產生IO,/dev/null是偽設備,相當於黑洞,of到該設備不會產生IO,所以,這個命令的IO只發生在/dev/sdb上,也相當於測試磁盤的讀能力。(Ctrl+c終止測試)
time dd if=/dev/sdb of=/testrw.dbf bs=4k
在這個命令下,一個是物理分區,一個是實際的文件,對它們的讀寫都會產生IO(對/dev/sdb是讀,對/testrw.dbf是寫),假設它們都在一個磁盤中,這個命令就相當於測試磁盤的同時讀寫能力。
5、測試純寫入性能
dd if=/dev/zero of=test bs=8k count=10000 oflag=direct
6、測試純讀取性能
dd if=test of=/dev/null bs=8k count=10000 iflag=direct
