首页主机资讯CentOS中Python性能监控方法

CentOS中Python性能监控方法

时间2025-11-20 16:47:03发布访客分类主机资讯浏览1335
导读:CentOS 中 Python 性能监控方法 一 系统级监控工具 使用系统自带与常用开源工具快速观测整体资源与进程行为,适合定位瓶颈的大方向与异常波动。 常用工具与用途一览: 工具 作用 典型用法 top / htop 实...

CentOS 中 Python 性能监控方法

一 系统级监控工具

  • 使用系统自带与常用开源工具快速观测整体资源与进程行为,适合定位瓶颈的大方向与异常波动。
  • 常用工具与用途一览:
工具 作用 典型用法
top / htop 实时查看进程与 CPU/内存 占用 top;htop(更友好)
vmstat 虚拟内存、CPU、IO 等综合统计 vmstat 1
iostat 磁盘 I/O 吞吐与延迟 iostat -x 1
free 内存与缓存/交换分区使用 free -m
netstat / ss 网络连接与套接字统计 ss -s
dstat 多功能资源统计(可替代 vmstat/iostat/netstat) dstat -ta 1
nmon 综合资源监控并支持导出数据 nmon -c 60 -s 10(示例)
Glances 基于 psutil 的跨平台监控,支持 Web glances;glances -w
  • 安装与快速上手示例(以 CentOS 7/8 为例):
    • 安装 Glances(EPEL 源):sudo yum -y install epel-release & & sudo yum -y install glances
    • 启动:glances(终端);glances -w(Web 界面,默认端口 61208
    • dstat:pip install dstat;dstat -ta 1
    • nmon:下载二进制至 /usr/local/bin/nmon 并赋权;nmon -c 60 -s 10(采集 60 次、间隔 10 秒)

二 应用内与代码级监控

  • 在 Python 进程内采集指标,便于与业务埋点结合、推送到时序库或做历史回放分析。
  • 常用方案与示例:
    • psutil(系统资源):获取 CPU、内存、磁盘、网络 等,适合嵌入业务监控与告警。
      • 示例:
        • import psutil
        • cpu = psutil.cpu_percent(interval=1)
        • mem = psutil.virtual_memory().percent
        • disk = psutil.disk_usage(‘/’).percent
        • net = psutil.net_io_counters()
    • Prometheus + Grafana(指标化与可视化):
      • 安装 prometheus_client 并在应用中暴露 /metrics 端点,Prometheus 抓取,Grafana 展示。
      • 示例:
        • from prometheus_client import start_http_server, Counter
        • start_http_server(5000)
        • requests_total = Counter(‘requests_total’,‘Total HTTP requests’)
        • requests_total.inc()
    • PyMetrics(轻量指标与渲染):
      • 适合快速做控制台/文本可视化与自定义渲染

三 性能剖析与瓶颈定位

  • 当需要精确到函数/代码行级别的热点与内存问题时,使用剖析器与可视化工具。
  • 工具与用法要点:
    • cProfile(标准库):统计函数调用次数与耗时,适合整体热点定位。
      • 示例:python -m cProfile -o profile.prof app.py;后续用 pstats/snakeviz 分析
    • line_profiler:逐行耗时,定位具体代码行瓶颈。
      • 示例:@profile 装饰目标函数;kernprof -l -v app.py
    • memory_profiler:逐行内存分配,定位内存热点与泄漏线索。
      • 示例:@profile 装饰;python -m memory_profiler app.py
    • snakeviz:cProfile 结果的交互式可视化(Web)。
      • 示例:snakeviz profile.prof
    • vprof:结合 CPU/内存的可视化分析。
      • 示例:python -m vprof -c app.py
    • py-spy(采样分析器,无需修改代码):对运行中的 Python 进程采样,生成 火焰图/SVG
      • 示例:py-spy record -o profile.svg – your_script.py

四 落地实践与排障流程

  • 建议按“由外到内、由粗到细”的顺序排查:
    1. 先用 top/htop 找到高 CPU/内存 占用的 Python 进程(必要时用 ps -ef | grep python 定位具体 PID)。
    2. vmstat/iostat/netstat/ss 判断是否为 I/O、网络或系统资源 瓶颈(如 iowait 高、软中断高、连接数打满)。
    3. dstat/nmon 做一段时间序列观测,辅助定位波动周期与关联资源。
    4. 在应用内用 psutil 采集关键指标(QPS、延迟、错误、队列长度等),并暴露 /metrics 接入 Prometheus/Grafana 做长期趋势与告警。
    5. 针对热点函数/接口,使用 cProfile 做整体剖析,再用 line_profiler 精确定位到行级瓶颈。
    6. 若怀疑内存问题,用 memory_profiler 逐行排查;对线上进程可用 py-spy 无侵入采样生成火焰图辅助分析。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS中Python性能监控方法
本文地址: https://pptw.com/jishu/752186.html
Python在CentOS中的数据库连接 Python在CentOS中的日志配置

游客 回复需填写必要信息