当你在多核NUMA处理器上运行需要较高性能的HPC(高性能计算)程序或非常消耗网络资源的程序时,CPU/memory的亲和力是限度其发挥最大性能的重要因素之一。在同一NUMA节点上调度最相关的进程可以减少缓慢的远程内存访问。像英特尔SandyBridge处理器,该处理器有一个集成的PCIe控制器,你可以在同一NUMA节点上调度网络I/O负载(如网卡)来突破PCI到CPU亲和力限制。
作为性能优化和故障排除的一部分,你可能想知道特定的进程被调度到哪个CPU内核(或NUMA节点)上运行。
这里有几种方法可以找出哪个CPU内核被调度来运行给定的Linux进程或线程。
方法一
如果一个进程使用taskset命令明确的被固定(pinned)到CPU的特定内核上,你可以使用taskset命令找出被固定的CPU内核:
复制代码