IOWAIT 时间非常长

IOWAIT 时间非常长

我有一个大型系统 - 128GB,几个 RAID0 文件系统(6TB 和 2TB),带有 SSD 缓存,8 个内核(16 个带超线程),运行 Ubuntu 12.04 64 位。当我尝试写入大型文件时,性能非常差,iotop 显示 iowait 中等待的进程超过 99%:

dd if=/dev/zero of=lezz bs=1024 count=$((1024*50))
51200+0 records in
51200+0 records out
52428800 bytes (52 MB) copied, 3.74852 s, 14.0 MB/s

来自 iotop:

Total DISK READ:     185.92 K/s | Total DISK WRITE:      84.06 M/s
  TID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
24481 be/4 arris292    0.00 B/s    0.00 B/s  0.00 % 99.99 % dd if=/dev/zero of=lezz     bs=1024 count=512000
22668 be/4 root        0.00 B/s    0.00 B/s  0.00 % 99.99 % [flush-252:0]
21532 be/4 root        0.00 B/s    0.00 B/s  0.00 % 99.99 % [kworker/1:2]
    1 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % init
    2 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kthreadd]
    3 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [ksoftirqd/0]
 8196 be/4 arris292    0.00 B/s    0.00 B/s  0.00 %  0.00 % sshd: arris292@pts/22
    5 be/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [kworker/u:0]
    6 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [migration/0]
    7 rt/4 root        0.00 B/s    0.00 B/s  0.00 %  0.00 % [watchdog/0]

在非常相似的系统上(相同内存、相同模型、相似的文件系统),我获得了预期的性能,并且没有进程等待 99% 的时间进行 IO....

dd if=/dev/zero of=lezz bs=1024 count=$((1024*50))
51200+0 records in
51200+0 records out
52428800 bytes (52 MB) copied, 0.111191 s, 472 MB/s

我以前就见过这种情况,但我从未真正能够找到问题的根源,随着时间的推移,越来越多的工程师开始使用这个系统进行构建,整体性能就会下降到很慢。

那么是什么原因导致了如此高的 IO 等待时间?我该如何进一步排除故障?这可能是 SSD 或磁盘问题吗?如果是,我可以使用哪些工具进行诊断?

相关内容