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

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. 测试读取速度

haparm -Tt /dev/xxx

1.1 获取硬盘设备名称:

fdisk -l

Disk /dev/xvdf: 365.0 GB, 365041287168 bytes

255 heads, 63 sectors/track, 44380 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

1.2 测试硬盘读取速度

hdparm -tT /dev/xvdf

/dev/xvdf:

Timing buffered disk reads: 962 MB in 3.00 seconds = 320.56 MB/sec

1.3 硬盘读取速度测试结果

1.3.1 台式物理机

spec: 7200转硬盘

hdparm -tT /dev/sda

/dev/sda:

Timing cached reads: 7650 MB in 2.00 seconds = 3829.28 MB/sec

Timing buffered disk reads: 296 MB in 3.02 seconds = 98.05 MB/sec

1.3.2 VmWare虚拟机

host spec: 7200转硬盘

hdparm -tT /dev/sda

/dev/sda:

Timing cached reads: 11396 MB in 2.00 seconds = 5704.37 MB/sec

Timing buffered disk reads: 648 MB in 3.09 seconds = 209.45 MB/sec

1.3.3 amazon EC2上虚拟机

Instance type: m1.large

hdparm -tT /dev/xvdf

/dev/xvdf:

Timing cached reads: 5830 MB in 1.99 seconds = 2923.38 MB/sec

Timing buffered disk reads: 950 MB in 3.00 seconds = 316.61 MB/sec

2. 测试写速度

2.1 测试方法

使用time命令和dd命令可以简单测试硬盘的写速率

2.2. 硬盘读取速度测试结果

2.2.1 台式物理机

spec: 7200转硬盘

time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file

1000000+0 records in

1000000+0 records out

1024000000 bytes (1.0 GB) copied, 9.78201 s, 105 MB/s

real 0m9.806s

user 0m0.236s

sys 0m3.120s

1.3.2 VmWare虚拟机

host spec: 7200转硬盘

time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file

1000000+0 records in

1000000+0 records out

1024000000 bytes (1.0 GB) copied, 13.533 s, 75.7 MB/s

real 0m13.605s

user 0m0.113s

sys 0m3.077s

1.3.3 amazon EC2上虚拟机

Instance type: m1.large

time dd if=/dev/zero bs=1024 count=1000000 of=/1Gb.file

1000000+0 records in

1000000+0 records out

1024000000 bytes (1.0 GB) copied, 22.6497 s, 45.2 MB/s

real 0m23.785s

user 0m0.504s

sys 0m5.888s

3. 总结

物理机 VmWare虚拟机 Amazon虚拟机

读速度 105209.45316.61

写速度10575.745.2

4. 附录

hdparm -h

-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硬盘进入睡眠模式。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存