特殊的设备介绍

/dev/null:空设备,回收站、无底洞
/dev/zero:产生字符

测试磁盘写能力

因为/dev//zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。命令结尾添加oflag=direct将跳过内存缓存,添加oflag=sync将跳过hdd缓存

time dd if=/dev/zero of=/data/nfs/testw.dbf bs=4k count=100000
#测试纯写入性能(无缓存)
dd if=/dev/zero of=test bs=8k count=10000 oflag=direct

测试磁盘读能力

因为/dev/sdb是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb上,也相当于测试磁盘的读能力。

time dd if=/data/nfs/testw.dbf of=/dev/null bs=4k
#测试纯读取性能(无缓存)
dd if=test of=/dev/null bs=8k count=10000 iflag=direct

测试结果

#写入
系统盘:1.1GB/s
数据盘:1.0GB/s
自已安装nfs: 250MB/s
nas容量: 200MB/s
nas性能:350MB/s

#读取
系统盘:2.2GB/s
数据盘:2.3GB/s
nfs盘: 2.2GB/s
nas容量: 2.2GB/s
nas性能:2.2GB/s

查看硬盘当前TPS

iostat -d -k 1 10
-d:显示某块具体硬盘,这里没有给出硬盘路径就是默认全部了
-k:以KB为单位显示
1:统计间隔为1秒
10:共统计10次的
-x 参数,查看设备使用率(%util)、响应时间(await)