码迷,mamicode.com
首页 > 编程语言 > 详细

python 绑定进程在某个cpu上执行 affinity

时间:2017-10-23 20:06:47      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:blog   sleep   signal   target   import   机器   创建   代码   绑定   

multiprocessing 进程在多cpu机器上的利用率.然后写了个脚本在i5(4核),起了4个进程,发现只有一颗cpu跑的比较高,然后觉得不是很舒服. 

指定某个cpu去执行一个进程,python有个第三方的库http://pypi.python.org/pypi/affinity/0.1.0,基本都是调用了系统的affinity mask的API. 

在windows上装了试了下,貌似还真有点用. 

看了下代码,一共也就3个方法,用起来很方便. 
_get_handle_for_pid(pid, ro=True) 
通过一个pid获取进程 
get_process_affinity_mask(pid) 
通过pid获取这个进程当前的affinity mask相关掩码 ,返回一个长整形(‘2l‘,就是在用2这个cpu) 
set_process_affinity_mask(pid, value) 
绑定pid这个进程到value所指的这个cpu上去(set_process_affinity_mask(3516, 1),就是用1这个cpu去执行pid为3516这个进程) 

 

>>>import multiprocessing, time, signal  
>>>import affinity  
#我用multiprocessing创建了个进程  
>>>p = multiprocessing.Process(target=time.sleep, args=(1000,))  
>>>p.start()  
>>>pid=p.pid  
>>>print pid  
5604  
#先看了下5604这个进程用的是那个cpu  
>>>affinity.get_process_affinity_mask(pid)  
3L  
#将5604这个进程用2这个cpu跑  
>>>affinity.set_process_affinity_mask(pid, 2L)  
3L  
>>>affinity.get_process_affinity_mask(pid)  
2L  

 

python 绑定进程在某个cpu上执行 affinity

标签:blog   sleep   signal   target   import   机器   创建   代码   绑定   

原文地址:http://www.cnblogs.com/domestique/p/7718510.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!