py-spy

py-spy Python 性能剖析

补充说明

py-spy 是采样式 Python profiler,可以在不修改代码、不重启进程的情况下查看 Python 调用栈和热点函数。适合排查线上 CPU 高、卡死和线程阻塞。

支持 top、record、dump、flamegraph 和 speedscope 输出。它通过读取进程内存工作,需要 ptrace 权限。

常用示例

实时查看:

py-spy top --pid 12345

采样并生成火焰图:

py-spy record -o profile.svg --pid 12345 --duration 30

导出 speedscope:

py-spy record -f speedscope -o profile.json --pid 12345

抓取当前调用栈:

py-spy dump --pid 12345

分析子进程:

py-spy record --subprocesses -o profile.svg -- python app.py

容器内使用:

docker exec -it --cap-add SYS_PTRACE app py-spy top --pid 1

易错点与排错