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硬盘的自动省电功能。