
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硬盘进入睡眠模式。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)