如何测试Linux磁盘的读写速度

如何测试Linux磁盘的读写速度,第1张

为了测试Linux磁盘的读写速度,可使用dd命令,dd命令是一个非常使用的命令,可用于文件的拷贝,下面就介绍如何使用dd命令测试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是写),假设它们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力。

读写失败时dd的返回值分别是多少一直查不到,而如果这个没法弄明白的话,校验的对错就没什么意义了(根本不知道是dd出的错还是md5sum出的错),算了,你将就一下吧,查到后改一下就好了。

#!

/bin/bash

infile="$1"

cycle=0

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

轮共

$copy

次复制,读/写错误

$err

次"

rm

-f

${infile}_*

exit

0

fi

let

cycle++

echo

"=========================

$cycle

==========================="

rm

-f

"$infile"_*

sync

let

copy++

#方便起见,选第一分区爆之

while

[

"$(df

-k|sed

-n

'3q2s/

*/

/g2p'|cut

-d

'

'

-f

4)"

-gt

1

]

do

echo

"===========

副本

$copy

==========="

outfile="${infile}_${copy}"

dd

if="$infile"

of="$outfile"

#关于dd命令如果遭遇读失败或写失败的返回码无据可查,但肯定不是0,

另一种实现方法是用md5sum

--status检验,但这种方法看起来多此一举反而导致读写比变>为3:1

if

[

"$?"

-ne

0

]

then

let

err++

fi

let

copy++

echo

&&

sync

trap

"echo

'结果:'

$cycle

'轮共'

$copy

'次复制,读/写错误'

$err

'次'

&&

rm

-f

${infile}_*

&&

exit"

1

2

3

15

done

echo

-e

"磁盘已满,删除测试文件后继续?(y/n)y:c"

done

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

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


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

原文地址:https://54852.com/yw/8376384.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存