bs=n,block size,每次读取 n bytes 写入,可与 count 联用;
ibs=n,一次读入 bytes 个字节 (default is 512);
obs=n,一次性写 n bytes 个字节 (default is 512);
bs 可以同时设置上边两个参数;
cbs=n,一次转换 n 个 bytes,即转换缓冲区大小。;
count=n, bs 操作的次数,仅拷贝 n 个块,如 dvd: bs=1M count=4430;
skip=n,指 if 后面的原文件跳过 n bytes 再开始读取;
seek=n,指 of 后面的目标文件跳过 n bytes 再开始写入;
1、测试写的性能、raid 6 (3个2T)
time dd if=/dev/zero of=test.dbf bs=8k count=300000
记录了30000+0 的读入
记录了30000+0 的写出
491520000字节(492 MB)已复制,0.815836 秒,602 MB/秒
real 0m0.838s
user 0m0.011s
sys 0m0.797s
2、测试读的性能
echo 3 > /proc/sys/vm/drop_caches;time dd if=test.dbf of=/dev/null bs=8k count=300000
iostat -k 1 查看速度
第一行显示的为当前系统内核版本,系统时间,cpu核数。
avg-cpu段:
%user:在用户级别运行所使用的CPU的百分比。
%nice :nice操作所使用的CPU的百分比。
%system:在系统级别(kernel)运行所使用的CPU的百分比。
%iowait:CPU等待硬件I/O时,所占用的百分比。
%steal:管理程序维护另一个虚拟处理器时,虚拟CPU无意识等待时间百分比。
%idle:CPU空闲时的百分比。
Device段:
tps: 每秒钟发送到的I/O请求数。
Blk_read/s: 每秒读取的block数。
Blk_wrtn/s: 每秒写入的block数。
Blk_read: 读入的block总数。
Blk_wrtn: 写入的block总数。
rrqm/s 将读入请求合并后,每秒发送到设备的读入请求数.
wrqm/s 将写入请求合并后,每秒发送到设备的写入请求数.
r/s 每秒发送到设备的读入请求数.
w/s 每秒发送到设备的写入请求数.
rsec/s 每秒从设备读入的扇区数.
wsec/s 每秒向设备写入的扇区数.
rkB/s 每秒从设备读入的数据量,单位为K.
wkB/s 每秒向设备写入的数据量,单位为K.
avgrq-sz 发送到设备的请求的平均大小,单位是扇区.
avgqu-sz 发送到设备的请求的平均队列长度.
await I/O请求平均执行时间.包括发送请求和执行的时间.单位是毫秒.
svctm 发送到设备的I/O请求的平均执行时间.单位是毫秒.
%util 在I/O请求发送到设备期间,占用CPU时间的百分比。用于显示设备的带宽利用率,当这个值接近100%时,表示设备带宽已经占满。
参数
-c 仅显示 CPU 统计信息。与 -d 选项互斥。
-d 仅显示磁盘统计信息。与 -c 选项互斥。
-k 以 KB为单位显示每秒的磁盘请求数,默认单位块。
-m 以MB为单位显示每秒的磁盘请求数。
-N 显示磁盘阵列信息
-n 显示网络文件系统NFS报告。此选项仅适用于Linux内核2.6.17以上版本。
-p device | ALL。与 -x 选项互斥,用于显示块设备及系统分区的统计信息,也可以在 -p 后指定一个设备名,如:iostat -p hda;或显示所有设备:iostat -p ALL
-t 在输出数据时,打印收集数据的时间。
-V 打印版本号和帮助信息。
-x 输出扩展信息。
# iostat 显示一条统计记录,包括所有的CPU和设备.
# iostat -d 2 每隔2秒,显示一次设备统计信息.
# iostat -d 2 6 每隔2秒,显示一次设备统计信息.总共输出6次.
# iostat -x hda hdb 2 6 每隔2秒显示一次hda,hdb两个设备的扩展统计信息,共输出6次.
# iostat -p sda 2 6 每隔2秒显示一次sda及上面所有分区的统计信息,共输出6次.