V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zhoudaiyu
V2EX  ›  问与答

请教大家一个关于 NUMA 架构下的 2 颗 CPU 使用率不均衡的问题

  •  
  •   zhoudaiyu · 2023-01-08 16:31:14 +08:00 · 977 次点击
    这是一个创建于 501 天前的主题,其中的信息可能已经有所发展或是发生改变。

      有一台 K8s 的 Node 节点(红帽 7.6 系统、3.10 内核、k8s 版本 1.11 )最近有非流量高峰期 CPU 使用率高经常告警的问题,从 top 整体看进程的 CPU 使用率尚可,但是负载比较高( 40-60 ),Node 节点主要跑一些 tomcat 应用的 Pod (约占该机器总 Pod 数量 85%),还有几个区块链、php 工程等的 Pod ,top 按 1 和 2 分别查看单个 CPU 核心和每颗 CPU 的使用率发现 CPU0 明显高于 CPU1

    CPU 信息

    top 1

    top 2

      挑了一个 tomcat 应用进程看了可以使用多有 CPU 核心,但是内存只允许使用 CPU0 和 CPU1 的(这里不知道理解的对不对),因此猜测有没有可能是因为需要跨 numa node 访问内存导致 2 颗 CPU 使用率有相差?请问大家这个猜测是否有可能,如果有的话,如何验证&如何修复?

    进程信息

    5 条回复    2023-01-08 21:11:33 +08:00
    dazhangpan
        1
    dazhangpan  
       2023-01-08 17:03:15 +08:00
    Mems_allowed_list 是 NUMA 0 & 1 的意思,不是 CPU0 & 1
    跨 NUMA 访问内存一般没这么大差别,在工作负载一致的情况下
    你这个 Top 里 Node0 si 还多一些,感觉是网络收发包的中断都在 Node0 上,可以 cat 一下 interrupts 看看到底是啥
    做个火焰图看看 CPU 上都跑了写啥
    另外 load 相对 CPU 数量比较高,建议把 HT 打开
    zhoudaiyu
        2
    zhoudaiyu  
    OP
       2023-01-08 17:10:48 +08:00
    @dazhangpan #1 perf top 看不出来啥,看来还是得弄出来火焰图才行。请问您最后说的 HT 是啥?超线程吗?超线程已经开了目前。
    tftk
        3
    tftk  
       2023-01-08 17:25:35 +08:00
    看下 kubelet 的 cpu-manager-policy 配置是不是有 numa 相关
    zhoudaiyu
        4
    zhoudaiyu  
    OP
       2023-01-08 17:37:08 +08:00
    @tftk #3 策略是 none
    zhoudaiyu
        5
    zhoudaiyu  
    OP
       2023-01-08 21:11:33 +08:00
    @dazhangpan #1 大佬,我错了,这台机器超线程确实被关了,其他的 node 都是打开的,感谢感谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   999 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 21:46 · PVG 05:46 · LAX 14:46 · JFK 17:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.