Yi fan

使用python脚本来查看WSL的内存和cpu使用情况

编写一个python文件,放在项目目录下:

sudo vi check_memory_usage_formatted.py

代码如下:

import argparse
import psutil
from tabulate import tabulate

def print_process_info(process):
    try:
        pid = process.pid
        name = process.name()
        memory_info = process.memory_info()
        memory_percent = process.memory_percent()
        cpu_percent = process.cpu_percent(interval=0.1)
        return [pid, name, f"{memory_info.rss / 1024 / 1024:.2f} MB", f"{memory_percent:.2f}%", f"{cpu_percent:.2f}%"]
    except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
        return None

def main():
    parser = argparse.ArgumentParser(description='查看进程的内存和 CPU 占用情况')
    parser.add_argument('process_name', nargs='?', help='可选参数,指定要查看的进程名')
    args = parser.parse_args()

    table_data = []
    headers = ["PID", "进程名", "内存占用", "内存占用百分比", "CPU 占用百分比"]
    total_memory = 0
    total_cpu = 0

    if args.process_name:
        for proc in psutil.process_iter(['name']):
            info = print_process_info(proc)
            if info and info[1] == args.process_name:
                table_data.append(info)
                total_memory += float(info[2].split()[0])
                total_cpu += float(info[4].rstrip('%'))
    else:
        for proc in psutil.process_iter(['name']):
            info = print_process_info(proc)
            if info:
                table_data.append(info)
                total_memory += float(info[2].split()[0])
                total_cpu += float(info[4].rstrip('%'))

    # 输出内存使用汇总
    print(f"总内存占用: {total_memory:.2f} MB")
    print(f"总 CPU 占用: {total_cpu:.2f}%")

    if table_data:
        print(tabulate(table_data, headers=headers, tablefmt="grid"))
    else:
        print("未找到相关进程信息。")

if __name__ == "__main__":
    main()

如果包没有安装,则启动虚拟环境进行安装:

source /home/hans/Tdx/prod_venv/bin/activate

pip install psutil

pip install tabulate

安装完成后执行

python3 check_memory_usage_formatted.py

 

posted on 2025-03-05 14:42  hanswei  阅读(44)  评论(0)    收藏  举报

导航