什么(低优先级线程)导致我的节点高山容器中的 CPU 使用率为 100%?

什么(低优先级线程)导致我的节点高山容器中的 CPU 使用率为 100%?

我有一个节点 alpine docker 容器(托管在 Azure 上),它定期达到 100% 的 CPU 使用率。但是,运行tophtop命令显示没有线程具有高 CPU 使用率。

我如何找出原因?似乎节点进程不会导致高 CPU 使用率。我还运行了节点分析器,CPU 为 100% 时的 CPU 配置文件与常规配置文件没有明显变化。

htop屏幕显示 CPU 为 100%(大部分为蓝色,表示低优先级线程)。但下面的线程列表仅显示节点的使用率为 17%。

CPU 使用率过高的情况具有一定的周期性: 随时间变化的 CPU 使用率。它是在部署后几天开始的,但没有重大的代码变化(并且恢复也没有解决问题)。

编辑:

vmstat(第一次是在 CPU 正常使用期间,第二次是在 CPU 100% 使用期间)

ae7d7f5ef9c8:~# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 7  0 457816 296204 275828 1383336    4    6   167   571    0   17 33 13 54  1  0
 0  0 457816 296576 275860 1383388    0    0     0   256    0 4297 30 14 56  0  0
 0  0 457816 296576 275908 1383340    0    0     0   296    0 4301 23  8 69  0  0
 0  0 457816 296576 275932 1383348    0    0     0   208    0 2985 22  8 70  0  0
 0  0 457816 296576 275940 1383348    0    0     0    80    0 2444 21  4 75  0  0

ae7d7f5ef9c8:~# vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0 459432 285672 259408 1331844    4    6   167   571    0   23 33 13 54  1  0
 1  0 459432 247584 259420 1331860    0    0     0   124    0 4078 76 24  0  0  0
 1  0 459432 122716 259468 1331988    0    0     0   300    0 5521 64 36  0  0  0
 2  0 459432 282488 259504 1332020    0    0     0   212    0 5351 76 24  0  0  0
 5  0 459432 228736 259596 1332024    0    0     0   340    0 3257 76 24  0  0  0

答案1

更新:问题似乎出在 Azure Webapp 平台上。创建新的 Webapp 并在那里部署后,问题就消失了。

相关内容