linux 硬碟讀寫效能測試

2021-07-04 05:55:40 字數 1834 閱讀 8873

dd是進行資料塊拷貝的命令,可以很好的測試硬碟讀寫效能,網上例子很多,但是有時候我們並沒有很好的理解它。

我用單機單塊硬碟重新測試下。並且分析。

寫效能測試

[root@localhost ~]# dd if=/dev/zero bs=1024 count=1000000 of=./1gb.file  conv=fdatasync

記錄了1000000+0 的讀入

記錄了1000000+0 的寫出

1024000000位元組(1.0 gb)已複製,9.07139 秒,113 mb/秒

解釋:

if=/dev/zero                         提供資料源頭。一般認為提供資料耗時佔總比例很低,進而可以忽略它的耗時。

bs=1024                               一次產生1024個位元組數。

count=1000000                   迴圈產生1000000次1024位元組

cony=fdatasync                   寫檔案為了減少對磁碟的頻繁訪問,所以除非你關閉檔案的讀寫快取,不然檔案的寫入是先寫進快取的。fdatasync的作用就是將資料寫入磁碟

讀效能測試

[root@localhost ~]# dd if=./1gb.file bs=1024 of=/dev/null 

記錄了1000000+0 的讀入

記錄了1000000+0 的寫出

1024000000位元組(1.0 gb)已複製,0.762979 秒,1.3 gb/秒

[root@localhost ~]# free

total used free shared buffers cached

mem: 3847976 2859992 987984 134476 0 2297636

-/+ buffers/cache: 562356 3285620

swap: 4079612 286208 3793404

解釋:

of=/dev/null                        理解為乙個不占用寫時間的地方就可以。

常識告訴我,機械硬碟讀速度不可能有1.3gb/秒。我覺得是cache對它進行了干擾。

所以我們需要清空cache,以前測試oom,寫過類似的程式把資料從cache擠出去。

我們清空cache後重新測試!

[root@localhost ~]# free

total used free shared buffers cached

mem: 3847976 470032 3377944 130980 0 12388

-/+ buffers/cache: 457644 3390332

swap: 4079612 432476 3647136

[root@localhost ~]# dd if=./1gb.file bs=1024 of=/dev/null

記錄了1000000+0 的讀入

記錄了1000000+0 的寫出

1024000000位元組(1.0 gb)已複製,7.82455 秒,131 mb/秒

131mb/秒這個資料是比較正常的,如果資料有偏差,可以按這種步驟多試幾次求眾數吧。

目前來看。這樣測試出來的資料是可信的。也沒有明顯的弊端。

Linux硬碟讀寫測試

linux伺服器想要知道硬碟的讀寫是否能滿足服務的需要,我們可以使用linux自帶的dd命令測試硬碟的讀寫速度,方法如下 登入ssh,輸入以下命令即可,根據測試資料的大小等待返回的時間不同 linux硬碟寫入速度 time dd if dev zero of var test bs 2k count...

linux測試硬碟讀寫速度

time有計時作用,dd用於複製,從if讀出,寫到of。if dev zero不產生io,因此可以用來測試純寫速度。同理of dev null不產生io,可以用來測試純讀速度。bs是每次讀或寫的大小,即乙個塊的大小,count是讀寫塊的數量。1.測 目錄所在磁碟的純寫速度 time dd if de...

linux測試硬碟讀寫速度

time有計時作用,dd用於複製,從if讀出,寫到of。if dev zero不產生io,因此可以用來測試純寫速度。同理of dev null不產生io,可以用來測試純讀速度。bs是每次讀或寫的大小,即乙個塊的大小,count是讀寫塊的數量。1.測 目錄所在磁碟的純寫速度 time dd if de...