我有一个应用程序部署为多台机器上的多个Docker容器。每台机器一个docker容器。每个Docker容器都分配了一个CPU内核。所有这些docker容器都是从同一docker映像创建的。
这些docker容器中的大多数都运行良好。平均CPU利用率为5%,平均负载为0.7。但是我注意到有些机器的负载约为18,远远超出了CPU内核的数量。但是,这些机器上的CPU利用率是很正常的,大约为3%。
我已经在StackOverflow上看到很多有关此问题的帖子,大多数答案都指出IO操作可能是罪魁祸首。但是,当我查看IO统计信息时,没有发现任何异常。 Iowait很好,block_read / block_write很好,磁盘还远未满,使用的inode数量也很好。有什么办法找出负载这么大的原因吗?
08:30:01 AM CPU %user %nice %system %iowait %steal %idle
08:40:01 AM all 3.12 0.03 1.00 0.06 1.57 94.22
08:50:01 AM all 3.18 0.03 1.03 0.06 1.63 94.08
09:00:01 AM all 3.25 0.03 1.03 0.06 1.73 93.89
09:10:01 AM all 3.55 0.02 1.07 0.06 1.60 93.70
09:20:01 AM all 3.43 0.03 1.06 0.07 1.53 93.89
09:30:01 AM all 3.41 0.03 1.05 0.06 1.49 93.96
09:40:01 AM all 3.51 0.03 1.09 0.06 1.57 93.73
09:50:01 AM all 3.54 0.03 1.07 0.06 1.59 93.70
10:00:01 AM all 3.73 0.03 1.09 0.06 1.64 93.45
10:10:01 AM all 3.83 0.03 1.09 0.06 1.78 93.21
10:20:01 AM all 3.74 0.03 1.09 0.08 1.57 93.49
10:30:01 AM all 3.68 0.02 1.10 0.07 1.40 93.72
10:40:01 AM all 3.67 0.03 1.08 0.06 1.67 93.49
10:50:01 AM all 3.92 0.03 1.14 0.07 1.62 93.22
11:00:01 AM all 4.01 0.03 1.14 0.06 1.84 92.92
11:10:01 AM all 3.72 0.03 1.12 0.06 1.74 93.33
11:20:01 AM all 3.77 0.03 1.10 0.06 2.00 93.04
11:30:01 AM all 3.66 0.03 1.24 0.07 1.81 93.19
11:40:01 AM all 3.71 0.03 1.11 0.06 1.77 93.31
11:50:01 AM all 3.80 0.02 1.09 0.07 1.51 93.51
Average: all 2.80 0.03 0.99 0.08 1.68 94.43
avg-cpu: %user %nice %system %iowait %steal %idle
3.18 0.03 1.06 0.07 1.42 94.24
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 1228.26 1336.50 28160.57 6360098968 134009622199
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
19 0 0 37796 0 2625884 0 0 165 3470 2 1 3 1 94 0 1
12:03:27 up 55 days, 1:56, 1 user, load average: 18.19, 18.26, 18.30