进程绑定CPU
本文描述的内容仅适用于linux环境
1. CPU 亲和力
CPU 亲和性是指进程在给定的 CPU 上运行很长时间并尽可能少地迁移到其他处理器的趋势。 linux内核的进程调度器天生就具有这样的特性。它尽可能确保进程不会在处理器之间频繁迁移。频繁的迁移意味着CPU缓存未命中的概率会增加,从主存到CPU缓存的复制会增加。时间。
2.6 版本的 linux 内核增加了一个新机制,可以让开发者通过编程实现硬 CPU 亲和,即程序可以显示指定的 CPU 执行进程。
2. CPU亲和性应用场景有大量对时间敏感、性能要求高的计算系统

最常见的例子是 nginx。在配置nginx子进程数时,一般设置为CPU核数。同时通过设置worker_cpu_affinity,将不同的子进程绑定到不同的CPU核上,增强nginx的响应能力。
如果你的服务器只有一个核心,那么绑定与否都没有关系。
3.python程序如何绑定CPU

Linux 内核 API 提供了一些方法供用户修改位掩码或查看当前位掩码:
sched_set_affinity()(用于修改位掩码)sched_get_affinity()(用于查看当前位掩码)
Python 开发者不需要使用这么低级的 API,第三方库 psutil 即可完成这些操作
import psutil
count = psutil.cpu_count()
p = psutil.Process()
cpu_lst = p.cpu_affinity() # [0, 1, 2, 3]
p.cpu_affinity([0, 1]) # 将进程绑定到0和1这两个cpu核上
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-379233-1.html
快回归
但也绝不怕事