當前位置:首頁 » 硬碟大全 » linux測試硬碟讀寫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

linux測試硬碟讀寫

發布時間: 2022-12-14 08:45:47

A. linux怎麼計算io讀寫速度

Linux下測試磁碟的讀寫IO速度,使用hdparm命令,下面是測試方法:

#hdparm-Tt/dev/sda
/dev/sda:
Timingcachedreads:6676MBin2.00seconds=3340.18MB/sec
Timingbuffereddiskreads:218MBin3.11seconds=70.11MB/sec
#可以看到,2秒鍾讀取了6676MB的緩存,約合3340.18MB/sec;
#在3.11秒中讀取了218MB磁碟(物理讀),讀取速度約合70.11MB/sec;

B. 如何測試linux磁碟的讀寫速度

1、先熟悉兩個特殊的設備:
(1)/dev/null:回收站、無底洞。
(2)/dev/zero:產生字元。
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終止測試)
4、測試同時讀寫能力
代碼如下:
time dd if=/dev/sdb of=/testrw.dbf bs=4k
在這個命令下,一個是物理分區,一個是實際的文件,對它們的讀寫都會產生IO(對/dev/sdb是讀,對/testrw.dbf是寫),假設它們都在一個磁碟中,這個命令就相當於測試磁碟的同時讀寫能力。

C. Linux 系統下進行iozone 硬碟讀寫

iozone是一個文件系統的基準測試工具,可以全面測試不同操作系統中文件系統的讀寫性能

方法/步驟


命令及參數說明

-a:使用全面自動模式,使用的塊大小從4k到16M,在文件大於 32MB時將自動停止使用低於64K的塊大小測試,這節省了許多時間。

-z:與-a連用,測試所有的塊,強制iozone 在執行自動測試時包含小的塊;

-R:生成Excel報告。iozone將生成一個兼容Excel的標准輸出報告,這個文件可以使用Microsoft Excel打開,可以創建一個文件系統性能的圖表。注意:3D圖表是面向列的,畫圖時需要選擇這項,因為Excel默認處理面向行的數據;

-b filename : iozone輸出結果時將創建一個兼容Excel的二進制格式的文件。

-n:設置測試時最小文件大小

-g:設置測試時最大文件大小

-s:設置測試時文件大小

-f filename: 指定測試文件的名字,完成後會自動刪除(這個文件必須指定你要測試的那個硬碟中)

-y:指定測試塊的大小范圍,表示測試最小塊大小,需要和-a同時使用;

-q:指定測試塊的大小范圍,表示測試最大塊大小,需要和-a同時使用;

-r:指定測試的塊大小測試。

如果只在意讀/寫的性能,並不想花時間執行所有測試,可以像如下一樣限制測試內容

./iozone –Ra –g 2G –i 0 –i 1

-i :設置I/O測試模式(0=write/Re-write,1=read/Re-read,2=random-read/write,3=Read-backwards … 12=preadv/Re-preadv),這些別的詳細內容請查man

首先需要進入iozone3_397/src/current/路徑下,然後再執行下列命令

全面的自動測試模式,所有參數都是預設的,並且測試完成所有的操作,生成輸出結果iozone.xls,這個文件可以使用Microsoft Excel打開,執行下列命令:

./iozone -a -Rb /home/loongson/iozone.xls

自定義模式,設置最小測試文件為64M,最大測試文件為1G,只進行讀寫測試,並在當前路徑下生成輸出結果iozone.xls,在終端執行下列命令:

./iozone -a -n 64m -g 1G -i 0 -i 1 -Rb ./iozone.xls

設備當前內存大小是8G,需要指定內存大小的兩倍,並且從塊大小4K到16M結束全面測試;

./iozone -a -s 16g -Rb ./iozone.xls

6

掛載盤的測試,比如U盤等;首先要現將測試盤掛載到/mnt目錄下;

./iozone -a -n 1g -g 4g -i 0 -i 1 -f /mnt/iozone -Rb ./iozone.xls

7

設備當前內存大小是8G,需要指定內存大小的兩倍,並且從指定塊64k大小開始到16M結束全面測試;

./iozone -a -y 64k -s 16g -Rb ./iozone.xls

8

指定塊大小測試案例

./iozone -a -i 0 -i 1 -i 2 -s 8g -r 16m -Rb iozone.xls


D. windows和Linux測試磁碟讀寫速度

測試windows的命令:winsat disk -drive 盤符,其中D盤是機械硬碟,C盤是SSD;從截圖中可以看出機械硬碟順序讀的速度是隨機讀的10倍,SSD的順序讀速度接近隨機讀的3倍

E. 在 Linux 上檢測硬碟速度

在Linux中可以用 hdparm 命令來測試硬碟速度。

為了檢測更精準,這個操作應該 重復2-3次 。這顯示了無需訪問磁碟,直接從 Linux 緩沖區緩存中讀取的速度。這個測量實際上是被測系統的處理器、高速緩存和存儲器的吞吐量的指標。這是一個 for 循環的例子,連續運行測試 5 次:

F. Linux 如何測試 IO 性能(磁碟讀寫速度

linux下測試磁碟IO讀寫速度
[root@node3 /]# time dd if=/dev/sda2 of=/dev/null bs=8k count=524288
524288+0 records in
524288+0 records out
4294967296 bytes (4.3 GB) copied, 37.4222 seconds, 115 MB/s
real 0m37.497s
user 0m0.036s
sys 0m1.320s
了4.3G的數據,平均速度為115M/s

[root@node3 /]# hdparm -t /dev/sda2
/dev/sda2:
Timing buffered disk reads: 284 MB in 3.00 seconds = 94.55 MB/sec

[root@node3 /]# hdparm -t /dev/sda2
/dev/sda2:
Timing buffered disk reads: 292 MB in 3.02 seconds = 96.82 MB/sec

讀了將近300M的數據,平均速度大約為95M/s
經過以上的測試數據大體估算該磁碟的性能大約為100M/s

G. linux shell 硬碟文件讀寫校驗測試腳本

讀寫失敗時dd的返回值分別是多少一直查不到,而如果這個沒法弄明白的話,校驗的對錯就沒什麼意義了(根本不知道是dd出的錯還是md5sum出的錯),算了,你將就一下吧,查到後改一下就好了。
#!
/bin/bash
infile="$1"
cycle=0
=0
err=0
if
[
"$#"
-ne
1
]
||
[
!
-f
"$1"
]
then
echo
"用法:test
<infile>"
exit
1;
fi
echo
-e
"<>警告<>:本測試程序對磁碟有較大損害,請您謹慎運行。"
echo
-e
"
按Crtl+C鍵終止測試"
echo
-e
"開始測試?(y/n)y:c"
while
read
-r
answer
</dev/tty
do
if
[
"$answer"
==
'n'
]
||
[
"$answer"
==
'N'
]
then
echo
"結果:$cycle
輪共
$
次復制,讀/寫錯誤
$err
次"
rm
-f
${infile}_*
exit
0
fi
let
cycle++
echo
"=========================

$cycle

==========================="
rm
-f
"$infile"_*
sync
let
++
#方便起見,選第一分區爆之
while
[
"$(df
-k|sed
-n
'3q;2s/
*/
/g;2p'|cut
-d
'
'
-f
4)"
-gt
1
]
do
echo
"===========
副本
$
==========="
outfile="${infile}_${}"
dd
if="$infile"
of="$outfile"
#關於dd命令如果遭遇讀失敗或寫失敗的返回碼無據可查,但肯定不是0,
另一種實現方法是用md5sum
--status檢驗,但這種方法看起來多此一舉反而導致讀寫比變>為3:1
if
[
"$?"
-ne
0
]
then
let
err++
fi
let
++
echo
&&
sync
trap
"echo
'結果:'
$cycle
'輪共'
$
'次復制,讀/寫錯誤'
$err
'次'
&&
rm
-f
${infile}_*
&&
exit;"
1
2
3
15
done
echo
-e
"磁碟已滿,刪除測試文件後繼續?(y/n)y:c"
done

H. 如何查看linux伺服器io讀寫情況

首先 、用top命令查看
top - 16:15:05 up 6 days, 6:25, 2 users, load average: 1.45, 1.77, 2.14
Tasks: 147 total, 1 running, 146 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2% us, 0.2% sy, 0.0% ni, 86.9% id, 12.6% wa, 0.0% hi, 0.0% si
Mem: 4037872k total, 4003648k used, 34224k free, 5512k buffers
Swap: 7164948k total, 629192k used, 6535756k free, 3511184k cached
查看12.6% wa
IO等待所佔用的CPU時間的百分比,高過30%時IO壓力高
其次、 用iostat -x 1 10
avg-cpu: %user %nice %sys %iowait %idle
0.00 0.00 0.25 33.46 66.29
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
sdb 0.00 1122 17.00 9.00 192.00 9216.00 96.00 4608.00 123.79 137.23 1033.43 13.17 100.10
sdc 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

查看%util 100.10 %idle 66.29
如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁碟可能存在瓶頸。
idle小於70% IO壓力就較大了,一般讀取速度有較多的wait.
同時可以結合vmstat 查看查看b參數(等待資源的進程數)
vmstat -1
如果你想對硬碟做一個IO負荷的壓力測試可以用如下命令
time dd if=/dev/zero bs=1M count=2048 of=direct_2G
此命令為在當前目錄下新建一個2G的文件
我們在新建文件夾的同時來測試IO的負荷情況

I. Linux下測試磁碟讀寫速度(轉)

理論上復制量越大測試越准確。

命令解釋:

time 有計時作用,dd 用於復制,從 if 讀出,寫到 of。

if=/dev/zero 不產生 IO,因此可以用來測試純寫速度。

同理 of=/dev/null 不產生 IO,可以用來測試純讀速度。

bs 是每次讀或寫的大小,即一個塊的大小,count 是讀寫塊的數量。

J. Linux查看實時硬碟讀寫速度

可以參考以下資料
1. 了解hdparm命令Linux上使用hdparm命令查看硬碟信息和測試硬碟讀寫速度。Linux測試硬碟讀寫速度用什麼命令了解hdparm命令
以CentOS7.5為例。默認情況下,並沒有安裝該工具。[root@zcwyou ~]# yum -y install hdparm2. 查看硬碟信息:/dev/sda:SG_IO: bad/missing sense data, sb[]: 70 1c 05 39 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
3. 顯示硬碟的摘要信息