首页 > 系统相关 > python进程绑定CPU的一些Demo

python进程绑定CPU的一些Demo

时间:2023-01-24 18:33:24浏览次数:59  
标签:avia python Demo 绑定 cpu 进程 os CPU

https://www.cnblogs.com/devilmaycry812839668/p/17066212.html中知道如何对python进程设置CPU绑定,本文对此进行一些延伸,给出一些例子:

代码1:

import os
from multiprocessing import Process
import time


cpu_avia = os.sched_getaffinity(os.getpid())

os.sched_setaffinity(os.getpid(), list(cpu_avia)[:2])  # 绑定两个核心

def func():
    while True:
        pass


process = [Process(target=func) for i in range(2)]
for proc in process:
    proc.start()

time.sleep(600)

可以看到在父进程中设置绑定两个CPU,那么另个子进程每个的单CPU利用率均可以达到100% 。

 

现在的疑问是这个绑定2个CPU后子进程和父进程是不是一同绑在了这2个CPU上,如果父进程也进行死循环运行那么每个进程的利益率会是多少,因此给出第二个代码:

代码2:

import os
from multiprocessing import Process


cpu_avia = os.sched_getaffinity(os.getpid())
print(cpu_avia)

os.sched_setaffinity(os.getpid(), list(cpu_avia)[:2])  # 绑定两个核心


def func():
    while True:
        pass

process = [Process(target=func) for i in range(2)]
for proc in process:
    proc.start()


func()

可以看到父进程和两个子进程的利用率总和约为200%,也就是说父进程和两个子进程被绑定到这两个CPU上,因此三个进程的CPU利用率总和为200%。

 

 

通过上面的两个例子我们知道在父进程中绑定多个CPU其实还不能很好的对子进程的CPU绑定起到细粒度的控制,为此我们给出更细粒度的绑定的例子:

代码3:

import os
from multiprocessing import Process


cpu_avia = os.sched_getaffinity(os.getpid())
print(cpu_avia)

os.sched_setaffinity(os.getpid(), list(cpu_avia)[:2])  # 绑定两个核心


def func(id):
    os.sched_setaffinity(os.getpid(), list(cpu_avia)[id:id+1])  # 绑定两个核心
    while True:
        pass

process = [Process(target=func, args=(i+1, )) for i in range(2)]
for proc in process:
    proc.start()


func(0)

 

 

 

===================================

 

 

参考:

https://www.cnblogs.com/devilmaycry812839668/p/17066212.html

https://blog.csdn.net/weixin_39755712/article/details/111434443

标签:avia,python,Demo,绑定,cpu,进程,os,CPU
From: https://www.cnblogs.com/devilmaycry812839668/p/17066246.html

相关文章

  • 百度联想:用Python抓取百度关键字联想信息
    Python抓取百度关键字联想信息参考:https://www.jianshu.com/p/dc1ec2456331?appinstall=0MAC上运行经常得到乱码,只有偶尔非乱码;该方法其实没什么实用价值。#https://ww......
  • 【转载】 python进程绑定CPU
    版权声明:本文为CSDN博主「人间再无张居正」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/u013887652/article/deta......
  • Python入门之选择语句
    """选择语句"""sex=input("请输入性别:")ifsex=="男":print("您好,先生!")elifsex=="女":print("您好,女士!")else:print("性别未知!")print("后续逻辑......
  • Python - XSS-href
    参考资料:https://owasp-skf.gitbook.io/asvs-write-ups/cross-site-scripting-href-xss-href/kbid-3-cross-site-scripting-href$sudodockerpullblabla1337/owasp-sk......
  • Python3配合Django来调用钉钉在线api实时监测员工考勤打卡情况
    基本上钉钉(dingding)作为一个远程办公平台来用的话,虽然差强人意,但是奈何市面上没有啥更好的选择,矬子里拔将军,也还是可以凑合用的,不过远程办公有个问题,就是每天需要检查员......
  • python入门学习笔记002--趣学Python算法--第2例兔子产子
    例题如下:有一对兔子,从出生后的第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总对数为多少?  个......
  • python入门学习笔记001--趣学Python算法--第一例抓交通肇事犯
    本人是python小白初学者,过年期间实在闲的无聊,偶尔翻到《趣学Python算法100例》这本书,浅浅阅读后感觉写的很不错。本系列案例均取自该书,只分享题目和自己的编的代码,问题分析......
  • python-opencv 实现人脸识别功能
    使用python-opencv实现人脸识别功能。思路如下:1.使用opencv库打开摄像头。2.加载opencv中自带的人脸特征识别分类器3.输出结果代码如下:importcv2importmatplotl......
  • python怎么对对边录制的mp4文件取最后一帧图信息
    提问: python怎么对对边录制产生的mp4文件取最后一帧图信息,这个录制的mp4文件还在录制中会不断增加文件体积,我要做个边录制边取最后一帧数进行识别物品类似功能,并且要求取......
  • Python入门之 行的理解
    """行"""#三个物理行,三个逻辑行a=1b=a+2c=a+b#一个物理行,三个逻辑行(不建议)a=1;b=a+2;c=a+b#一个物理行,一个逻辑行d=1+2+3......