在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 # 生成内存使用报告
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性能监控与优化。