python 設定執行程序的CPU

2021-07-15 15:57:12 字數 601 閱讀 5324

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個數

Linux 的程序操作(執行程序)

如果需要在子程序中執行一些自定義的動作,則需要呼叫 exec 函式族。當程序呼叫 exec 系列函式的時候,該程序執行的程式被立即替換為新的程式,而新程式則從 main 函式開始執行,並立刻替換掉了當前程序的正文段 資料段 堆和堆疊,需要注意的是其程序識別符號和程序描述符是不會改變的。exec 函式...

ubuntu後台執行程序

最近在azure上搭乙個基於web.py的web service,由於是用putty去ssh伺服器,在server上把web.py啟動以後,回到寢室由於pc睡眠,putty連線inactive,導致web service無法正常訪問。正常啟動web service python test.py 88...

使用procd執行程序

在openwrt系統內init程序被procd取代,procd作為父程序可以監控子程序的狀態。一旦子程序退出後即可在某乙個時刻嘗試進行重啟程序。在op系統內使用procd監控的有uhttpd,netifd等。在 etc init.d 資料夾內帶有use procd 1標誌,下面就介紹如何讓procd...