You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python获取Linux系统CPU占用最高的前5个应用/进程列表

Python获取Linux CPU占用Top5进程实现方案

你已经在使用的psutil库就可以直接实现该需求,无需引入额外第三方依赖,具体实现逻辑如下:

  • 调用psutil.process_iter()遍历系统所有进程,同时指定要获取的进程属性为进程名name、CPU占用率cpu_percent
  • 调用cpu_percent时传入小时间间隔参数做短采样,保证返回的CPU占用数据准确性
  • 跳过无权限访问、已退出的异常进程,过滤CPU占用为0的进程
  • 按CPU占用率降序排序后取前5个进程,格式化输出为要求的JSON结构

可直接运行的示例代码

import psutil
import json

def get_top5_cpu_processes():
    process_list = []
    for proc in psutil.process_iter(["name", "cpu_percent"]):
        try:
            proc_info = proc.info
            # 间隔100ms采样获取CPU占用率,数值精度可满足常规需求
            proc.cpu_percent(interval=0.1)
            if proc_info["cpu_percent"] > 0:
                process_list.append({
                    "name": proc_info["name"],
                    "cpu": round(proc_info["cpu_percent"], 1)
                })
        except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
            continue
    # 按CPU占用率从高到低排序
    process_list.sort(key=lambda x: x["cpu"], reverse=True)
    return process_list[:5]

if __name__ == "__main__":
    result = get_top5_cpu_processes()
    print(json.dumps(result, indent=4, ensure_ascii=False))

常见适配调整说明

  • 默认返回的CPU占用率为单核心满值计算逻辑(总满值为核心数*100%),如果需要和htop展示的总CPU占比逻辑对齐(总满值为100%),可以将CPU计算逻辑改为:round(proc_info["cpu_percent"] / psutil.cpu_count(), 1)
  • 可以根据需求调整interval参数的数值,数值越大CPU占用率统计越准确,对应脚本阻塞采样的时间越长

内容的提问来源于stack exchange,提问作者S Andrew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 07:45:03