首页主机资讯CentOS Python性能监控如何设置

CentOS Python性能监控如何设置

时间2025-12-02 14:07:04发布访客分类主机资讯浏览1088
导读: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
CentOS Python日志分析如何进行 centos golang打包如何配置环境

游客 回复需填写必要信息