![使用 DD 监控磁盘 I/O](https://linux22.com/image/549202/%E4%BD%BF%E7%94%A8%20DD%20%E7%9B%91%E6%8E%A7%E7%A3%81%E7%9B%98%20I%2FO.png)
我一直在调查我的服务器是否遇到大量 iowait 问题。我在网上找到了很多关于运行 dd 命令的信息。我无法运行此转换:
[root@vps ~]# dd if=/dev/zero of=/tmp/test bs=64k count=16k conv=fdatasync
dd: invalid conversion: `fdatasync'
Try `dd --help' for more information.
我也尝试过不使用转换器,但我没有得到像其他人发的大多数帖子那样的统计数据。有人能解释一下为什么会这样吗?
[root@vps ~]# dd if=/dev/zero of=/tmp/test bs=64k count=16k
16384+0 records in
16384+0 records out
答案1
尝试使用 dstat 或 iostat 与 SWAT 或 Cacti 进行制图。(假设您没有使用 Solaris、OpenIndiana 或变体,在这种情况下您将使用 Dtrace。)
http://freshmeat.net/projects/dstat/?branch_id=54241&release_id=251831
http://blogs.oracle.com/paisit/entry/import_iostat_data_to_swat
http://forums.cacti.net/post-170326.html
另请参阅:
ioapps-http://code.google.com/p/ioapps/
strace_analyzer-跟踪器http://clusterbuffer.wetpaint.com/page/Strace+Analyzer+-+Next+Generation
strace_analyzer 教程 -http://www.linux-mag.com/id/7730/1/
答案2
您的 dd 版本显然不支持 fdatasync 转换。如果您无法从中获取统计数据,您可以使用类似以下代码执行自己的计算:
时间 sh -c "dd if=/dev/zero of=/tmp/test bs=64k count=16k && sync"
这将为您提供写入和同步所需的总时间 - 您只需将数据量(在您的示例中为 1 GB)除以时间即可计算平均写入速率。