Linux使用dd命令快速生成大檔案

2021-06-28 10:18:02 字數 1884 閱讀 9915

dd命令可以輕易實現建立指定大小的檔案,如

dd if=/dev/zero of=test bs=1m count=1000

會生成乙個1000m的test檔案,檔案內容為全0(因從/dev/zero中讀取,/dev/zero為0源)。

但是這樣為實際寫入硬碟,檔案產生速度取決於硬碟讀寫速度,如果欲產生超大檔案,速度很慢。

在某種場景下,我們只想讓檔案系統認為存在乙個超大檔案在此,但是並不實際寫入硬碟。

則可以dd if=/dev/zero of=test bs=1m count=0 seek=100000

此時建立的檔案在檔案系統中的顯示大小為100000mb,但是並不實際占用block,因此建立速度與記憶體速度相當。

seek的作用是跳過輸出檔案中指定大小的部分,這就達到了建立大檔案,但是並不實際寫入的目的。

當然,因為不實際寫入硬碟,所以你在容量只有10g的硬碟上建立100g的此類檔案都是可以的。

>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

1000000+0 records in

1000000+0 records out

8192000000 bytes (8.2 gb) copied, 52.5749 seconds, 156 mb/s

real    0m55.841s

user    0m0.507s

sys    0m15.706s

##紅色部分是因為使用了time命令才顯示的,因此需要time命令來計算複製的時間。

測/data目錄所在磁碟的純讀速度:

[root@nagios ~]# time dd if=/var/test of=/dev/null bs=8k count=1000000

1000000+0 records in

1000000+0 records out

8192000000 bytes (8.2 gb) copied, 49.0088 seconds, 167 mb/s

real    0m49.025s

user    0m0.559s

sys    0m6.383s

測讀寫速度:

[root@nagios ~]# time dd if=/var/test of=/tmp/test bs=8k count=1000000

125000+0 records in

125000+0 records out

8192000000 bytes (8.2 gb) copied, 129.239 seconds, 63.4 mb/s

real    2m9.251s

user    0m0.114s

sys    0m21.494s

看來這個測試結果還不錯,嘿嘿 

備註:理論上測試複製量越大測試結果越準確。

正常測試的時候可能不止測試一邊,可能會需要很多遍求取平均值,這個測試結果在普通的重定向是沒有效果的 之後 google 了一下 用下面的方式重定向到乙個檔案

dd if=/dev/zero of=/var/test bs=8k count=1000000  2>> info

這樣測試的結果就到info檔案裡面了

linux使用dd命令快速生成大檔案

dd命令可以輕易實現建立指定大小的檔案,如 dd if dev zero of test bs 1m count 1000 會生成乙個1000m的test檔案,檔案內容為全0 因從 dev zero中讀取,dev zero為0源 但是這樣為實際寫入硬碟,檔案產生速度取決於硬碟讀寫速度,如果欲產生超大...

linux使用dd命令快速生成大檔案

dd命令可以輕易實現建立指定大小的檔案,如 dd if dev zero of test bs 1m count 1000 會生成乙個1000m的test檔案,檔案內容為全0 因從 dev zero中讀取,dev zero為0源 但是這樣為實際寫入硬碟,檔案產生速度取決於硬碟讀寫速度,如果欲產生超大...

Linux使用dd命令快速生成大檔案

dd命令可以輕易實現建立指定大小的檔案,如 dd if dev zero of test bs 1m count 1000 會生成乙個1000m的test檔案,檔案內容為全0 因從 dev zero中讀取,dev zero為0源 但是這樣為實際寫入硬碟,檔案產生速度取決於硬碟讀寫速度,如果欲產生超大...