与更多类似进程配对时,进程 CPU% 会加倍

与更多类似进程配对时,进程 CPU% 会加倍

我们遇到了一个有趣的难题,希望您能帮我们解决问题。我们有一个包含多个进程的服务。为了分配负载,我们可以启动大多数类型的 n 个进程。例如,如果我们预计有 200,000 个连接,并且知道某个进程类型中的每一个在达到 100% CPU 之前可以处理大约 5,000 个连接,那么我们知道应该至少运行 40 个这样的进程类型来处理负载。

最近,我们开始整合我们的服务,以便更好地利用硬件。但在负载测试期间,我们发现,除了单个机器上某种进程类型的数量外,不做任何改变,每个进程的 CPU% 都会翻倍。

以下是该进程 CPU% 的截图:

进程CPU%

以下是主机 CPU% 的截图:

主机 CPU%

之前的测试中大约有 12 个此过程实例;之后的测试将数量翻了一番。我认为如果盒子无法处理负载,那么这种情况是有道理的,但从我看到的情况来看,情况并非如此。

top - 14:55:08 up 54 days, 18:30,  1 user,  load average: 22.26, 22.39, 22.03
Tasks: 581 total,   1 running, 580 sleeping,   0 stopped,   0 zombie
%Cpu(s): 32.8 us,  3.1 sy,  0.0 ni, 62.3 id,  0.0 wa,  0.0 hi,  1.7 si,  0.0 st
KiB Mem : 26385841+total, 16612808+free, 20537016 used, 77193320 buff/cache
KiB Swap:  4194300 total,  4194300 free,        0 used. 24167782+avail Mem

平均负载在范围内(这是一台 28 核服务器,256GB 内存)。磁盘 I/O 为wa0.0我不确定是什么导致 CPU% 增加。还有什么想法可以寻找吗?如果 CPU(根据 top)实际上是在下面利用了?

相关内容