Nginx服务器会把自己的每个worker进程绑定到一个CPU上,以期减少进程间切换所带来的开销,最大限度利用多核框架。在实现上,使用Linux的sched_setaffinity()这个函数来实现。第三方库affinity封装了该函数,使得我们可以将python的进程绑定到指定的CPU上。

         用法非常简单

        

affinity.get_process_affinity_mask(pid)  #查看pid这个进程用了哪一个CPU
affinity.set_process_affinity_mask(pid, 2L) #设置pid在2这个进程上运行

        如果你的机器不是多核的,也就没有必要这么设置了,毕竟只有一个CPU。那么如何知道自己的机器有几颗CPU呢?

       

#coding=utf-8
import psutil

p = psutil.Process()
pro_info = p.as_dict(attrs=['pid', 'name', 'username'])
print psutil.cpu_count()

       psutil开源库,可以获取系统状态,通过它可以知晓机器的CPU个数