背景
在平时的工作中,经常会有某些进程突然 CPU
飙升,导致系统卡顿。那如何才能监控某个进程的 CPU
利用率呢?我们今天就一起用 Python
来实现下。
环境准备
依赖库
psutil
是 Python
的一个很流行的库,用来获取系统资源信息的。它支持 windows
和 linux
,可以获取 CPU
,内存,网络,硬盘等信息。
安装
pip install psutil
代码准备
# 导入依赖库
import psutil,time
import re,string
# 打印系统全部进程的PID列表
print(psutil.pids())
# 根据进程名获取进程PID
def get_pid(name):
process_list = list(psutil.process_iter())
print(process_list)
regex = "pid=(\d+),\sname=\'" + name + "\'"
print(regex)
pid = 0
for line in process_list:
process_info = str(line)
ini_regex = re.compile(regex)
result = ini_regex.search(process_info)
if result != None:
pid = result.group(1)
print(pid)
print(result.group())
return int(pid)
# 根据进程PID获取进程对象
def get_process_obj_by_id(pid):
try:
p = psutil.Process(pid)
except Exception as e:
print(e)
return p
# 获取Taskmgr的PID
pid = get_pid('Taskmgr.exe')
# 根据Taskmgr的PID获取Taskmgr进程对象
process_obj=get_process_obj_by_id(pid)
num=0
while True:
num+=1
# 获取Taskmgr的CPU实时利用率,interval为间隔时间
per = process_obj.cpu_percent(interval=1)
print(num ,per)
执行效果
以上就是今天的全部内容了,感谢您的阅读,我们下节再会。
评论区