1. sync;/usr/bin/time -p bash -c "(dd if=/dev/zero of=test.dd bs=1000K count=20000;sync)"

1)sync 命令用来刷新文件系统的缓冲区,执行sync命令实际的作用是把内存中的数据缓冲写入到磁盘中。 先执行下sync命令,是为了减少对后面测试的影响。也可以使用 echo 3 > /proc/sys/vm/drop_caches 来清除缓存。 (2)time 命令用来测试命令的执行时间,shell内建还有一个time命令,我们这里使用全路径来指定使用的是非内建命令。 -p 选项设置时间的输出格式为POSIX缺省时间格式,单位是秒,在后面的测试小节可以看到time -p 的输出形式。 (3)bash 命令 -c 选项的作用是将后面的字符串参数当作bash脚本来执行,看起来有些画蛇添足,好像直接执行也是可行的, 其实不然,因为后面字符串中包含了两条命令行,而time命令需要统计这两条命令行的执行时间。 (4)小括号的意思是另起一个子进程来执行括号中的脚本,dd 这条命令行这里就不讲了,不知道的话Baidu吧。 重点是sync命令,因为当dd退出时,这条命令行提交的大部分内容都在内存缓冲区(写缓存),甚至如果机器的内存相比于你提交的数据要大得多, 那可能数据都在内存中,而再执行sync才能将内存中的数据写入到磁盘中,否则就成了测试内存的写速度,那显然不是你想要的结果。 ----------------------------------------------------**------------------------------------------- 测试命令: #sync;/usr/bin/time -p bash -c "(dd if=/dev/zero of=/nas1/123 bs=4k count=1024000;sync)" 1024000+0 records in 1024000+0 records out 4194304000 bytes (4.2 GB) copied, 6.90273 s, 608 MB/s real 7.20 user 0.10 sys 6.88 [root@rd2 /]# free -m total used free shared buffers cached Mem: 128853 117922 10931 0 224 603 -/+ buffers/cache: 117094 11758 Swap: 0 0 0


[root@rd2 /]# iostat -c Linux 3.19.0 (rd2.centos.com) 11/21/2018 x86_64 (8 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle 11.21 0.00 10.19 0.58 0.00 78.02


以上命令测试存储服务器硬盘读写 解析:硬盘iops =count数量\writer写入时间 iops=1024000\6.9 测试存储的同时查看内存、CPU的使用率 = =============================================================== dd -----命令解析: iostat--命令解析: 常见的读写测试命令还有: iozone