linux硬碟讀寫測試
『壹』 linux伺服器測試單個硬碟的讀寫速度的命令是什麼
C菜鳥助手成員tonytvb為你解答(如有疑問請hi我或向我的團隊提問):
功能說明:顯示與設定硬碟的參數。
語法:hdparm [-CfghiIqtTvyYZ][-a <快取分區>][-A <0或1>][-c ][-d <0或1>][-k <0或1>][-K <0或1>][-m <分區數>][-n <0或1>][-p ][-P <分區數>][-r <0或1>][-S <時間>][-u <0或1>][-W <0或1>][-X <傳輸模式>][設備]
補充說明:hdparm可檢測,顯示與設定IDE或SCSI硬碟的參數。
測試各硬碟讀取速度判斷硬碟故障
在服務端命令窗口中執行如下命令
hdparm -t /dev/hda (IDE硬碟)
hdparm -t /dev/sda (SATA、SCSI、硬RAID卡陣列)
hdparm -t /dev/md0 (軟RAID設備)
測試結果在空載情況下應 >40M/s ,在負載情況下平均應 > 20M/s 為正常,如測試結果極低則需要進一步使用硬碟專用檢測工具測試是否為硬碟故障。
參數:
-a<快取分區> 設定讀取文件時,預先存入塊區的分區數,若不加上<快取分區>選項,則顯示目前的設定。
-A<0或1> 啟動或關閉讀取文件時的快取功能。
-c 設定IDE32位I/O模式。
-C 檢測IDE硬碟的電源管理模式。
-d<0或1> 設定磁碟的DMA模式。
-f 將內存緩沖區的數據寫入硬碟,並清楚緩沖區。
-g 顯示硬碟的磁軌,磁頭,磁區等參數。
-h 顯示幫助。
-i 顯示硬碟的硬體規格信息,這些信息是在開機時由硬碟本身所提供。
-I 直接讀取硬碟所提供的硬體規格信息。
-k<0或1> 重設硬碟時,保留-dmu參數的設定。
-K<0或1> 重設硬碟時,保留-APSWXZ參數的設定。
-m<磁區數> 設定硬碟多重分區存取的分區數。
-n<0或1> 忽略硬碟寫入時所發生的錯誤。
-p 設定硬碟的PIO模式。
-P<磁區數> 設定硬碟內部快取的分區數。
-q 在執行後續的參數時,不在屏幕上顯示任何信息。
-r<0或1> 設定硬碟的讀寫模式。
-S<時間> 設定硬碟進入省電模式前的等待時間。
-t 評估硬碟的讀取效率。
-T 平谷硬碟快取的讀取效率。
-u<0或1> 在硬碟存取時,允許其他中斷要求同時執行。
-v 顯示硬碟的相關設定。
-W<0或1> 設定硬碟的寫入快取。
-X<傳輸模式> 設定硬碟的傳輸模式。
-y 使IDE硬碟進入省電模式。
-Y 使IDE硬碟進入睡眠模式。
-Z 關閉某些Seagate硬碟的自動省電功能。
『貳』 如何測試linux磁碟的讀寫速度
功能說明:顯示與設定硬碟的參數。
語法:hdparm [-CfghiIqtTvyYZ][-a <快取分區>][-A <0或1>][-c ][-d <0或1>][-k <0或1>][-K <0或1>][-m <分區數>][-n <0或1>][-p ][-P <分區數>][-r <0或1>][-S <時間>][-u <0或1>][-W <0或1>][-X <傳輸模式>][設備]
補充說明:hdparm可檢測,顯示與設定IDE或SCSI硬碟的參數。
測試各硬碟讀取速度判斷硬碟故障
在服務端命令窗口中執行如下命令
hdparm -t /dev/hda (IDE硬碟)
hdparm -t /dev/sda (SATA、SCSI、硬RAID卡陣列)
hdparm -t /dev/md0 (軟RAID設備)
測試結果在空載情況下應 >40M/s ,在負載情況下平均應 > 20M/s 為正常,如測試結果極低則需要進一步使用硬碟專用檢測工具測試是否為硬碟故障。
參數:
-a<快取分區> 設定讀取文件時,預先存入塊區的分區數,若不加上<快取分區>選項,則顯示目前的設定。
-A<0或1> 啟動或關閉讀取文件時的快取功能。
-c 設定IDE32位I/O模式。
-C 檢測IDE硬碟的電源管理模式。
-d<0或1> 設定磁碟的DMA模式。
-f 將內存緩沖區的數據寫入硬碟,並清楚緩沖區。
-g 顯示硬碟的磁軌,磁頭,磁區等參數。
-h 顯示幫助。
-i 顯示硬碟的硬體規格信息,這些信息是在開機時由硬碟本身所提供。
-I 直接讀取硬碟所提供的硬體規格信息。
-k<0或1> 重設硬碟時,保留-dmu參數的設定。
-K<0或1> 重設硬碟時,保留-APSWXZ參數的設定。
-m<磁區數> 設定硬碟多重分區存取的分區數。
-n<0或1> 忽略硬碟寫入時所發生的錯誤。
-p 設定硬碟的PIO模式。
-P<磁區數> 設定硬碟內部快取的分區數。
-q 在執行後續的參數時,不在屏幕上顯示任何信息。
-r<0或1> 設定硬碟的讀寫模式。
-S<時間> 設定硬碟進入省電模式前的等待時間。
-t 評估硬碟的讀取效率。
-T 平谷硬碟快取的讀取效率。
-u<0或1> 在硬碟存取時,允許其他中斷要求同時執行。
-v 顯示硬碟的相關設定。
-W<0或1> 設定硬碟的寫入快取。
-X<傳輸模式> 設定硬碟的傳輸模式。
-y 使IDE硬碟進入省電模式。
-Y 使IDE硬碟進入睡眠模式。
-Z 關閉某些Seagate硬碟的自動省電功能。
『叄』 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
『肆』 如何測試Linux磁碟的讀寫速度
用法:
1.測試IO讀
hdparm -t --direct /dev/sda3
IO讀用上面的命令測試即可,不過 hdparm 這個工具需要自己安裝,而且需要root用戶去執行。
2.測試IO寫
sync;/usr/bin/time -p bash -c "(dd if=/dev/zero of=test.dd bs=1000K count=20000;sync)"
dd bs=1M count=20000 if=/dev/zero of=test.dd conv=fdatasync dd命令測試是IO的順序寫和讀方式。
3.查看文件系統塊大小
tune2fs -l /dev/sda1 | grep Block
上面的命令行有些復雜,做下詳細的解釋:
(1)sync 命令用來刷新文件系統的緩沖區,執行sync命令實際的作用是把內存中的數據緩沖寫入到磁碟中。
先執行下sync命令,是為了減少對後面測試的影響。也可以使用 echo 3 > /proc/sys/vm/drop_caches 來清除緩存。
(2)time 命令用來測試命令的執行時間,shell內建還有一個time命令,我們這里使用全路徑來指定使用的是非內建命令。
-p 選項設置時間的輸出格式為POSIX預設時間格式,單位是秒,在後面的測試小節可以看到time -p 的輸出形式。
(3)bash 命令 -c 選項的作用是將後面的字元串參數當作bash腳本來執行,看起來有些畫蛇添足,好像直接執行也是可行的,
其實不然,因為後面字元串中包含了兩條命令行,而time命令需要統計這兩條命令行的執行時間。
(4)小括弧的意思是另起一個子進程來執行括弧中的腳本,dd 這條命令行這里就不講了,不知道的話Bai吧。
重點是sync命令,因為當dd退出時,這條命令行提交的大部分內容都在內存緩沖區(寫緩存),甚至如果機器的內存相比於你提交的數據要大得多,
那可能數據都在內存中,而再執行sync才能將內存中的數據寫入到磁碟中,否則就成了測試內存的寫速度,那顯然不是你想要的結果。
『伍』 如何進行linux 磁碟io讀寫性能測試分析,並且監控、記錄測試數據
#!/bin/bash
device_name=(`df -lh |grep "^/dev/sd"|awk '{print $1}'`)
mount_dir=(`df -lh |grep "^/dev/sd"|awk '{print $6}'`)
#echo ${device_name[@]}
#echo ${mount_dir[@]}
num=${#device_name[@]}
#echo $num
for ((i=0;i<=$num-1;i++));
do
touch ${mount_dir[$i]}/file1
if [ $? -eq 0 ]
then
echo -e "\e[32m${device_name[$i]} is OK\e[0m"
else
echo -e "\e[31m${device_name[$i]} is error\e[0m"
fi
rm -rf ${mount_dir[$i]}/file1
done
~
這是一個檢查磁碟好壞的腳本,是我線上用的,但我沒寫到計劃任務里,只是偶爾檢查一下磁碟,祝你成功
『陸』 linux下怎麼測試硬碟讀寫速度
功能說明:顯示與設定硬碟的參數。 語法:hdparm [-CfghiIqtTvyYZ][-a ][-A ][-c ][-d ][-k ][-K ][-m ][-n ][-p ][-P ][-r ][-S ][-u ][-W ][-X ][設備] 補充說明:hdparm可檢測,顯示與設定IDE或SCSI硬碟的參數。 測試各硬碟讀取速度判斷硬碟...
『柒』 如何在Linux中測試硬碟讀寫速度
1、先熟悉兩個特殊的設備:
(1)/dev/null:回收站、無底洞。
(2)/dev/zero:產生字元。
2、測試磁碟寫能力
代碼如下:
time dd if=/dev/zero of=/testw.dbf bs=4k count=
因為/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是寫),假設它們都在一個磁碟中,這個命令就相當於測試磁碟的同時讀寫能力。
『捌』 用什麼測試linux 硬碟讀寫速度
hdparm -Tt /dev/hda
測試讀寫速率
『玖』 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
『拾』 如何在Linux下測試硬碟的讀寫速度
功能說明:顯示與設定硬碟的參數。 語法:hdparm [-CfghiIqtTvyYZ][-a <快取分區>][-A <0或1>][-c ][-d <0或1>][-k <0或1>][-K <0或1>][-m <分區數>][-n <0或1>][-p ][-P <分區數>][-r <0或1>][-S <時間>][-u <0或1>][-W <0或1>][-X <傳輸模式>][設備] 補充說明:hdparm可檢測,顯示與設定IDE或SCSI硬碟的參數。 測試各硬碟讀取速度判斷硬碟故障 在服務端命令窗口中執行如下命令 hdparm -t /dev/hda (IDE硬碟) hdparm -t /dev/sda (SATA、SCSI、硬RAID卡陣列) hdparm -t /dev/md0 (軟RAID設備) 測試結果在空載情況下應 >40M/s ,在負載情況下平均應 > 20M/s 為正常,如測試結果極低則需要進一步使用硬碟專用檢測工具測試是否為硬碟故障。 參數: -a<快取分區> 設定讀取文件時,預先存入塊區的分區數,若不加上<快取分區>選項,則顯示目前的設定。 -A<0或1> 啟動或關閉讀取文件時的快取功能。 -c 設定IDE32位I/O模式。 -C 檢測IDE硬碟的電源管理模式。 -d<0或1> 設定磁碟的DMA模式。 -f 將內存緩沖區的數據寫入硬碟,並清楚緩沖區。 -g 顯示硬碟的磁軌,磁頭,磁區等參數。 -h 顯示幫助。 -i 顯示硬碟的硬體規格信息,這些信息是在開機時由硬碟本身所提供。 -I 直接讀取硬碟所提供的硬體規格信息。 -k<0或1> 重設硬碟時,保留-dmu參數的設定。 -K<0或1> 重設硬碟時,保留-APSWXZ參數的設定。 -m<磁區數> 設定硬碟多重分區存取的分區數。 -n<0或1> 忽略硬碟寫入時所發生的錯誤。 -p 設定硬碟的PIO模式。 -P<磁區數> 設定硬碟內部快取的分區數。 -q 在執行後續的參數時,不在屏幕上顯示任何信息。 -r<0或1> 設定硬碟的讀寫模式。 -S<時間> 設定硬碟進入省電模式前的等待時間。 -t 評估硬碟的讀取效率。 -T 平谷硬碟快取的讀取效率。 -u<0或1> 在硬碟存取時,允許其他中斷要求同時執行。 -v 顯示硬碟的相關設定。 -W<0或1> 設定硬碟的寫入快取。 -X<傳輸模式> 設定硬碟的傳輸模式。 -y 使IDE硬碟進入省電模式。 -Y 使IDE硬碟進入睡眠模式。 -Z 關閉某些Seagate硬碟的自動省電功能。