如何测试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是写),假设它们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-04-20
功能说明:显示与设定硬盘的参数。

  语  法: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硬盘的自动省电功能。
第2个回答  2021-01-05

固态硬盘测速教程,SSD硬盘读写速度测试,4K对齐SATA设置AHCI

相似回答