最近又遇到了性能测试相关的话题,现在常测试的无非就是接口读写,网络性能,CPU性能之类的,找了下常用的最基础的工具,后续慢慢逐一讨论。
Linux下hdparm硬盘测速
在Linux下可以使用hdparm对硬盘进行测试或者查看硬盘的相关信息hdparm
hdparm [-CfghiIqtTvyYZ] [-a<快取分区>][-A<0或1>][-c<I/O模式>][-d<0或1>][- k<0或1>][-K<0或1>][-m<分区数>][-n<0或1>][-p <PIO模式>][-P <分区数>][-r<0或1>][-S<时间>][-u <0或1>][-W <0或1>][-X<传输模式>][设备]
补充说明:hdparm可检测,显示与设定IDE或SCSI硬盘的参数。
参 数:
-a<快取分区>
-A<0或1>
-c<I/O模式>
-C
-d<0或1>
-f
-g
-h
-i
-I
-k<0或1>
-K<0或1>
-m<磁区数>
-n<0或1>
-p<PIO模式>
-P<磁区数>
-q
-r<0或1>
-S<时间>
-t
-T
-u<0或1>
-v
-W<0或1>
-X<传输模式>
-y
-Y
-Z
----------------------------------------
补充说明:hdparm可检测,显示与设定IDE或SCSI硬盘的参数。
在服务端命令窗口中执行如下命令
hdparm -t /dev/hda (IDE硬盘)
hdparm -t /dev/sda (SATA、SCSI、硬RAID卡阵列)
hdparm -t /dev/md0 (软RAID设备)
测试举例:
1、评估硬盘的读取效率(不经过磁盘cache)
root@LOonux:/home/loongson# hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 222 MB in 3.02 seconds = 73.59 MB/sec
设定或取消硬盘的写入快取
root@LOonux:/home/loongson# hdparm -W 0 -t /dev/sda
/dev/sda:
setting drive write-caching to 0 (off)
write-caching = 0 (off)
Timing buffered disk reads: 222 MB in 3.01 seconds = 73.84 MB/sec
root@LOonux:/home/loongson# hdparm -W 1 -t /dev/sda
/dev/sda:
setting drive write-caching to 1 (on)
write-caching = 1 (on)
Timing buffered disk reads: 220 MB in 3.00 seconds = 73.23 MB/sec
2、
root@LOonux:/home/loongson# hdparm -t /dev/sda 硬盘的读取速度
/dev/sda:
Timing buffered disk reads: 226 MB in 3.01 seconds = 75.15 MB/sec
root@LOonux:/home/loongson# hdparm -T /dev/sda 硬盘缓存的读取速度
/dev/sda: Timing cached reads: 756 MB in 2.00 seconds = 377.97 MB/sec
root@LOonux:/home/loongson# hdparm -W 0 -T /dev/sda
/dev/sda: setting drive write-caching to 0 (off)
write-caching = 0 (off)
Timing cached reads: 792 MB in 2.00 seconds = 395.39 MB/sec
root@LOonux:/home/loongson# hdparm -W 1 -T /dev/sda
/dev/sda: setting drive write-caching to 1 (on)
write-caching = 1 (on)
Timing cached reads: 778 MB in 2.00 seconds = 388.37 MB/sec
(直接)硬盘读测试
root@LOonux:/home/loongson# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 768 MB in 2.00 seconds = 383.38 MB/sec
Timing buffered disk reads: 224 MB in 3.02 seconds = 74.16 MB/sec
root@LOonux:/home/loongson# hdparm -tT --direct /dev/sda
/dev/sda:
Timing O_DIRECT cached reads: 206 MB in 2.00 seconds = 103.01 MB/sec
Timing O_DIRECT disk reads: 258 MB in 3.01 seconds = 85.67 MB/sec
-T
用于以基准测试和比较为目的的缓存读取计时.要得到有意义的结果, 应该在内存不少于2M,系统没有其它活动(没有其它活动的程序) 的条件下,重复操作2-3次.它显示了不存取磁盘直接从Linux缓存 读取数据的速度.这项测量实际上标示了被测系统的处理器,缓存 和内存的吞吐量. 如果标志 -t 也被指定,那么一个基于 -T 输出结果的修正量将被综合到 -t 操作报告的结果中.
-t
用于以基准测试和比较为目的的缓存读取计时.要得到有意义的结果, 应该在内存不少于2M,系统没有其它活动(没有其它活动的程序) 的条件下,重复操作2-3次.它显示了不使用预先的数据缓冲从磁盘 这项测量标示了Linux下没有任何文件系统开销时磁盘可以支持多快的连续数据读取.为确保测量的精确,缓存在 -t 的过程中通过BLKFLSBUF控制被刷新. 如果标志 -T 也被指定,那么一个基于 -T 数促结果的修正量将被综合到 -t 操作报告的结果中.
PS:
硬盘坏道修复方法
检查:smartctl -l selftest /dev/sda
卸载:umount /dev/sda*
修复:badblocks /dev/sda
另一种测试硬盘读写的测试方法:
root@LOonux:/home/loongson# time dd if=/dev/zero of=/var/test bs=2M count=100
记录了100+0 的读入
记录了100+0 的写出
209715200字节(210 MB)已复制,3.57205 秒,58.7 MB/秒
real 0m4.486s
user 0m0.004s
sys 0m2.738s
root@LOonux:/home/loongson# time dd if=/var/test of=/dev/mull bs=2M count=100
记录了100+0 的读入
记录了100+0 的写出
209715200字节(210 MB)已复制,1.94033 秒,108 MB/秒
real 0m1.960s
user 0m0.004s
sys 0m1.879s
从if读出,写到of;
不产生IO,因此可以用来测试纯写速度;同理of=/dev/null不产生IO,可以用来测试纯读速度;
bs是每次读或写的大小,即一个块的大小,count是读写块的数量,相乘就是读写数据量大小;
bs=2M count=500
则是1.1G大小的文件;
本文来自博客园,作者:{Julius},转载请注明原文链接:https://www.cnblogs.com/bestechshare/p/16447810.html
可微信加我,了解更多,WeChat:{KingisOK}