目 录CONTENT

文章目录

用Python监控进程的状态

phyger
2022-03-26 / 0 评论 / 0 点赞 / 840 阅读 / 941 字 / 正在检测是否收录...

背景

在平时的工作中,经常会有某些进程突然 CPU 飙升,导致系统卡顿。那如何才能监控某个进程的 CPU 利用率呢?我们今天就一起用 Python 来实现下。

环境准备

依赖库

psutilPython 的一个很流行的库,用来获取系统资源信息的。它支持 windowslinux,可以获取 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)

执行效果

以上就是今天的全部内容了,感谢您的阅读,我们下节再会。

0

评论区