我有一台 24 核机器,内存为 94.6GiB,运行 Ubuntu 服务器 10.04。该框正在经历高 %iowait,这与我们拥有的另一台服务器(4 核)运行相同类型和数量的进程不同。两台机器都连接到 VNX Raid 文件服务器,24 核机器通过 4 个 FC 卡,另一个通过 2 个千兆位以太网卡。4 核机器目前优于 24 核机器,具有更高的 CPU 使用率和更低的 %iowait。
在 9 天的正常运行时间内,%iowait 平均为 16%,通常高于 30%。大部分时间 CPU 使用率非常低,大约 5%(由于高 iowait)。有足够的空闲内存。
我不明白的一件事是为什么所有数据似乎都通过设备 sdc 而不是直接通过数据移动器:
avg-cpu: %user %nice %system %iowait %steal %idle
6.11 0.39 0.75 16.01 0.00 76.74
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 0.00 0.00 0.00 1232 0
sdb 0.00 0.00 0.00 2960 0
sdc 1.53 43.71 44.54 36726612 37425026
dm-0 0.43 27.69 0.32 23269498 268696
dm-1 1.00 1.86 7.74 1566234 6500432
dm-2 0.96 1.72 5.97 1442482 5014376
dm-3 0.49 9.57 0.18 8040490 153272
dm-4 0.00 0.00 0.00 1794 24
dm-5 0.00 0.00 0.00 296 0
另一个难题是任务经常进入不可中断的睡眠模式(顶部),也可能是由于 io holdup。
我可以查看哪些内容来帮助诊断问题?为什么所有数据都通过/dev/sdc?那是正常的吗?
更新:
网络连接和 VNX 读/写容量已被排除为瓶颈。我们可以使用 4 个绑定的 NIC(循环)达到 800MB/s 的速度。光纤通道卡尚未使用。VNX 能够很好地处理 IO(RAID6,两个池中每个池 30x2TB 7.2kRPM 磁盘(总共 60 个磁盘),大约 60% 读取)。
忽略上面关于dm和sdc的内容,它们都是内部磁盘,不是问题的一部分。
我们认为问题可能出在 nfs 挂载或 TCP(我们在 VNX 上有 5 个挂载到 5 个分区),但不知道具体是什么。有什么建议吗?