在 Linux 上检测硬盘速度

在 Linux 上检测硬盘速度,第1张

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

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

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

copy了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

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是写),假设它们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8395961.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-16
下一篇 2023-04-16

发表评论

登录后才能评论

评论列表(0条)

保存