【基本參數詳解】
dd |
復制 |
|
if |
源 |
if=/dev/zero不產生IO |
of |
目的 |
of=/dev/null不產生IO |
bs |
塊大小 |
|
count |
讀寫塊的數量 |
|
iflag/oflag |
dd做讀寫測試時,要加兩個參數 iflag=nocache 和 oflag=direct 參數。 沒有的話dd有時會顯示從內存中傳輸數據的結果,速度會不准確。 |
iflag=nocache |
seek |
seek的作用是跳過輸出文件中指定大小的部分,這就達到了創建大文件,但是並不實際寫入的目的。 當然,因為不實際寫入硬盤,所以你在容量只有10G的硬盤上創建100G的此類文件都是可以的。 |
|
示例:
dd if=/dev/zero of=test bs=1M count=0 seek=100000 oflag=direct
【測試讀寫速度】
Linux服務器裝好系統之后,想要知道硬盤的讀寫是否能滿足服務的需要,如果不滿足硬盤的IO就是服務的一個瓶頸。所以我們需要測試硬盤的讀寫速度,測試的方法很多,下面是使用Linux 自帶的dd命令測試硬盤的讀寫速度。
time有計時作用,dd用於復制,從if讀出,寫到of。if=/dev/zero不產生IO,因此可以用來測試純寫速度。同理of=/dev/null不產生IO,可以用來測試純讀速度。bs是每次讀或寫的大小,即一個塊的大小,count是讀寫塊的數量。
測/data目錄所在磁盤的純寫速度:
[root@nagios ~]# time dd if=/dev/zero of=/var/test bs=8k count=1000000 oflag=direct |
測/data目錄所在磁盤的純讀速度:
[root@nagios ~]# time dd if=/var/test of=/dev/null bs=8k count=1000000 iflag=nocache |
測讀寫速度:
[root@nagios ~]# time dd if=/var/test of=/tmp/test bs=8k count=1000000 iflag=nocache |
備注:理論上測試復制量越大測試結果越准確。
正常測試的時候可能不止測試一邊,可能會需要很多遍求取平均值,這個測試結果在普通的重定向是沒有效果的
用下面的方式可以將結果重定向到文件
dd if=/dev/zero of=/var/test bs=8k count=1000000 2>> info |