折木1983 2021-04-28 12:47 采纳率: 0%
浏览 42

windows server 2012 R2的CPU负载调度问题

先简单说一下环境:硬件是双CPU,32核逻辑处理器,系统是server2012 R2 ,应用为微软的文件服务器,做共享给公司员工使用。
现象:CPU 在操作系统中分为2个numa,其中一个numa 节点cpu负载基本是100%,在另外一个numa节点负载很少,几乎没有负载。
请问各位大神,出现这个现象的原因是什么,有什么办法可以改善CPU的调度,使得2个CPU的负载比较均衡

逻辑处理器也是一半都是高负载,另外一半很少的负载

 

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-07-14 19:25
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析:
    1. 多核CPU分为两个NUMA节点,其中一个节点负载高,一个节点负载低。
    2. 文件服务器应用可能导致某些进程在一个NUMA节点上高频率运行,导致负载不均衡。 解决方法:
    3. 设置CPU亲和性:通过设置CPU亲和性,将特定的进程或线程绑定到某个NUMA节点上,以分散负载。
    # 绑定进程到指定CPU
    taskset -p -c [CPU ID] [PID]
    
    1. 使用numactl:numactl工具可以控制进程在不同NUMA节点间的内存分配和CPU使用。
    # numactl --hardware查看NUMA节点信息
    numactl --membind=[NODEID] --cpunodebind=[NODEID] [command]
    
    1. 调整操作系统内核参数:
      • 调整NUMA调度策略:通过修改/sys/devices/system/node/nodeX/numastat文件中的interleave_hit和local_node字段来监控和调整NUMA节点的负载情况。
      • 调整进程调度策略:调整/proc/sys/kernel/sched_domain隔离CPU负载。 四、 结合案例分析 根据提供的截图,可以看到第一个NUMA节点上的CPU负载非常高,而第二个NUMA节点上负载很低。可以使用以上方法来调整负载均衡情况。 希望以上方法能够帮助你解决CPU负载不均衡的问题。
    评论

报告相同问题?