CentOS Python性能监控如何设置
导读:CentOS 上搭建 Python 性能监控的实用方案 一 系统级监控工具 使用 Glances(基于 psutil)进行终端与 Web 一体化监控:安装 EPEL 后通过 YUM 安装,支持 CPU、内存、磁盘、网络等全栈指标,适合快速...
CentOS 上搭建 Python 性能监控的实用方案
一 系统级监控工具
- 使用 Glances(基于 psutil)进行终端与 Web 一体化监控:安装 EPEL 后通过 YUM 安装,支持 CPU、内存、磁盘、网络等全栈指标,适合快速巡检与临时排障。
- 使用 dstat 进行多维度资源对比:可同时查看 CPU、内存、磁盘、网络,并支持插件扩展,适合定位 I/O 与网络瓶颈。
- 使用 nmon 进行长期采样与图形化分析:适合容量规划与趋势复盘,可将采集结果导出后用分析工具生成图表。
安装与常用命令示例
- 安装 Glances
- sudo yum -y install epel-release
- sudo yum -y install glances
- 本地终端:glances;Web 界面:glances -w
- 安装 dstat
- sudo yum -y install epel-release
- sudo yum -y install dstat
- 实时查看:dstat -ta 1
- 安装 nmon
- 下载解压后将二进制放入 PATH(如 /usr/local/bin/nmon),赋权后运行
- 实时监控:nmon -c -t -r 30 -s 10(示例参数:30 个刷新周期、每 10 秒一次)
二 应用内指标与可视化
- 使用 prometheus_client 暴露 Python 应用指标(如请求计数、延迟、异常等),以 /metrics 端点供 Prometheus 抓取,并在 Grafana 中做可视化与告警。
- 快速示例(Flask 应用内嵌指标服务)
- pip install prometheus_client flask
- 代码示例
- from flask import Flask from prometheus_client import start_http_server, Counter, Histogram app = Flask(name) REQ_CNT = Counter(‘http_requests_total’, ‘Total HTTP requests’) REQ_LAT = Histogram(‘http_request_duration_seconds’, ‘HTTP request latency’) @app.route(‘/’) @REQ_LAT.time() def hello(): REQ_CNT.inc() return “Hello, Prometheus!” if name == ‘main’: start_http_server(5000) # 指标端口 app.run(host=‘0.0.0.0’, port=8000)
- 建议指标命名规范:应用名_指标名_单位(如 http_requests_total、http_request_duration_seconds),并添加有意义的 help 文本。
三 低开销采样与火焰图
- 使用 py-spy 对线上 Python 进程进行安全采样,无需修改代码或重启服务,适合定位 CPU 占用高的热点函数。
- 常用命令
- 采样生成火焰图:py-spy record -o profile.svg – your_script.py
- 附加到运行中的进程:py-spy record -p -o profile.svg
- 输出为 SVG 火焰图,可在浏览器中交互式查看调用栈与热点分布。
四 代码级剖析与内存热点
- 使用 cProfile 获取函数粒度的耗时与调用次数,适合定位性能瓶颈;配合 snakeviz 进行可视化分析。
- python -m cProfile -o profile.out your_script.py
- snakeviz profile.out
- 使用 memory_profiler 定位逐行内存分配与泄漏风险(需在命令行以 -m 方式运行脚本)。
- pip install memory_profiler
- python -m memory_profiler your_script.py
- 使用 line_profiler 获取逐行执行时间与次数,聚焦关键函数的瓶颈行。
- pip install line_profiler
- 在目标函数上加装饰器 @profile 后运行脚本。
五 快速落地与排障建议
- 基线采集:先用 Glances/dstat/nmon 建立 CPU、内存、磁盘 I/O、网络的基线曲线,记录峰值与异常时段。
- 应用埋点:在关键路径埋入 Counter/Histogram/Gauge,以 Prometheus + Grafana 构建实时看板与阈值告警(如 5xx 激增、P95 延迟异常)。
- 深度剖析:对热点进程用 py-spy 采样,对可疑函数用 cProfile/line_profiler/memory_profiler 逐级确认,避免盲目优化。
- 运行安全:生产环境优先选择低开销工具(如 py-spy、基于采样的指标),对需要装饰器或逐行监控的工具,建议在灰度或测试环境先行验证。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: CentOS Python性能监控如何设置
本文地址: https://pptw.com/jishu/761250.html
