温馨提示×

Ubuntu系统Python性能监控怎么做

小樊
57
2025-08-19 17:02:26
栏目: 编程语言

在Ubuntu系统上监控Python性能,可结合系统工具与Python库,从实时监控代码级分析压力测试等维度入手,以下是具体方法及工具:

一、实时系统资源监控

  • top/htop
    实时查看进程的CPU、内存占用,支持按名称过滤Python进程。

    top -p $(pgrep -d, python) # 仅显示Python进程 htop # 更直观的界面,支持交互操作 
  • psutil库
    通过Python代码获取系统资源使用情况(CPU、内存、磁盘等),适合集成到脚本中。

    import psutil print(f"CPU使用率: {psutil.cpu_percent(interval=1)}%") print(f"内存使用: {psutil.virtual_memory().percent}%") 

二、代码级性能分析

  • cProfile
    Python内置模块,用于统计函数执行时间与调用次数,生成详细报告。

    python -m cProfile -o profile.txt your_script.py # 输出到文件 
  • line_profiler
    逐行分析代码性能,定位瓶颈(需安装)。

    pip install line-profiler kernprof -l -v your_script.py # 需在代码中添加@profile装饰器 
  • memory_profiler
    监控内存使用情况,支持逐行分析内存分配。

    pip install memory-profiler mprof run your_script.py # 生成内存使用报告 

三、采样分析与可视化

  • Py-spy
    无需修改代码即可采样分析Python进程,支持生成火焰图,直观展示性能热点。
    pip install py-spy py-spy record -o profile.svg --pid <Python进程ID> # 生成火焰图 py-spy top --pid <PID> # 实时查看采样数据 

四、压力与并发测试

  • Locust
    模拟大量用户并发访问,适用于Web应用的压力测试。

    pip install locust # 编写locustfile.py定义测试场景,然后运行: locust -f locustfile.py --host=http://your-api 
  • ApacheBench (ab)
    命令行工具,用于测试Web服务器的并发性能。

    sudo apt install apache2-utils ab -n 1000 -c 100 http://your-api/ # 1000次请求,100并发 

五、系统级监控工具

  • glances
    跨平台工具,整合CPU、内存、磁盘、网络等监控,支持实时刷新和历史数据查看。

    sudo apt install glances glances 
  • dstat
    多功能监控工具,可实时显示CPU、内存、磁盘I/O等指标,支持模块化扩展。

    sudo apt install dstat dstat -ta 1 # 每秒更新一次所有指标 

选择建议

  • 快速定位问题:用top/htop查看进程状态,或py-spy生成火焰图分析热点。
  • 代码优化:用cProfile分析函数耗时,line_profiler定位具体代码行。
  • 压力测试:用Locust模拟高并发场景,ab测试Web接口性能。

根据具体需求选择工具组合,可高效完成Python性能监控与优化。

0