在 Linux 上检测硬盘速度

在Linux中可以用hdparm 命令来测试硬盘速度。

安装

ubuntu

sudo apt install hdparm

centos

sudo yum install hdparm

使用

hdparm -tT /dev/sda
  • -t: 执行设备读取时序
  • -T: 执行缓存读取时间
  • /dev/sda: 硬盘设备文件

为了检测更精准,这个操作应该重复2-3次 。这显示了无需访问磁盘,直接从 Linux 缓冲区缓存中读取的速度。这个测量实际上是被测系统的处理器、高速缓存和存储器的吞吐量的指标。这是一个 for 循环的例子,连续运行测试 5 次:

for i in 1 2 3 4 5; do hdparm -tT /dev/sda; done

/dev/sda:
 Timing cached reads:   16310 MB in  1.99 seconds = 8198.86 MB/sec
 Timing buffered disk reads: 432 MB in  3.01 seconds = 143.62 MB/sec

/dev/sda:
 Timing cached reads:   16492 MB in  1.99 seconds = 8289.34 MB/sec
 Timing buffered disk reads: 748 MB in  3.00 seconds = 249.00 MB/sec

/dev/sda:
 Timing cached reads:   15774 MB in  1.99 seconds = 7926.59 MB/sec
 Timing buffered disk reads: 374 MB in  3.00 seconds = 124.58 MB/sec

/dev/sda:
 Timing cached reads:   16544 MB in  1.99 seconds = 8315.83 MB/sec
 Timing buffered disk reads: 384 MB in  3.01 seconds = 127.78 MB/sec

/dev/sda:
 Timing cached reads:   15244 MB in  1.99 seconds = 7658.94 MB/sec
 Timing buffered disk reads: 390 MB in  3.01 seconds = 129.77 MB/sec

更多参数解析

  • -a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。
  • -A<0或1> 启动或关闭读取文件时的快取功能。
  • -c<I/O模式> 设定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模式> 设定硬盘的PIO模式。
  • -P<磁区数> 设定硬盘内部快取的分区数。
  • -q 在执行后续的参数时,不在屏幕上显示任何信息。
  • -r<0或1> 设定硬盘的读写模式。
  • -S<时间> 设定硬盘进入省电模式前的等待时间。
  • -t 评估硬盘的读取效率。
  • -T 评估硬盘快取的读取效率。
  • -u<0或1> 在硬盘存取时,允许其他中断要求同时执行。
  • -v 显示硬盘的相关设定。
  • -W<0或1> 关闭/开启磁盘的写入缓存,每个盘都有读取缓存和写入缓存,有时我们关闭磁盘写入缓存的效率高于开启磁盘写入缓存的效率,那当然选择前者了。
  • -X<传输模式> 设定硬盘的传输模式。
  • -y 使IDE硬盘进入省电模式。
  • -Y 使IDE硬盘进入睡眠模式。
  • -Z 关闭某些Seagate硬盘的自动省电功能。
0%