当前位置:

首页 > 编程开发 > CentOS Python资源如何监控

CentOS Python资源如何监控

CentOS下Python应用资源监控方案涵盖psutil、Flask+psutilWeb面板、Supervisor、Glances、Prometheus+Grafana及Py-spy,从轻量脚本到企业级栈,灵活满足不同场景需求。

在CentOS环境下,Python应用的资源监控是个老生常谈却又绕不开的话题。无论是排查性能瓶颈,还是保障服务稳定性,手里有几套趁手的监控方案总没错。下面整理了几种从轻量到企业级的监控手段,覆盖了系统资源、进程管理、可视化面板和性能分析,大家可以根据实际场景按需选用。

1. 使用psutil库监控系统资源

psutil是Python生态里最经典的跨平台资源库,CPU、内存、磁盘、网络,一个库全搞定。在CentOS上用它监控Python进程和周边系统资源,基本是开箱即用。

来看一个实际例子:

CentOS Python资源如何监控

import psutil

# 获取CPU使用率(间隔1秒)
cpu_percent = psutil.cpu_percent(interval=1)
print(f"CPU使用率: {cpu_percent}%")

# 获取内存信息(总内存、已用、可用、使用率)
memory = psutil.virtual_memory()
print(f"总内存: {memory.total / (1024**3):.2f}GB, 已用: {memory.used / (1024**3):.2f}GB, 使用率: {memory.percent}%")

# 获取磁盘使用情况(根分区)
disk = psutil.disk_usage('/')
print(f"磁盘总空间: {disk.total / (1024**3):.2f}GB, 已用: {disk.used / (1024**3):.2f}GB, 使用率: {disk.percent}%")

# 获取网络IO(发送/接收字节数)
net_io = psutil.net_io_counters()
print(f"发送字节数: {net_io.bytes_sent / (1024**2):.2f}MB, 接收字节数: {net_io.bytes_recv / (1024**2):.2f}MB")

循环调用这几个函数,就能实现定时监控。如果配合matplotlib库,还能把资源变化趋势画成折线图,直观程度直接拉满。

2. 构建Web监控面板(Flask+psutil)

光有命令行输出不够过瘾?用Flask搭一个简单的Web面板,实时数据直接展示在浏览器上。步骤也不复杂:

  • 安装依赖:pip install flask psutil
  • 创建Flask应用(app.py):
from flask import Flask, jsonify, render_template
import psutil

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')  # 创建templates/index.html展示数据

@app.route('/api/resource')
def resource():
    cpu = psutil.cpu_percent(interval=1)
    memory = psutil.virtual_memory().percent
    return jsonify({"cpu": cpu, "memory": memory})

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
  • 创建HTML模板(templates/index.html):



CPU使用率: -%

内存使用率: -%

运行python app.py后,访问http://服务器IP:5000,CPU和内存使用率就会每秒自动刷新。对于轻量级场景,这个方案够用了。

3. 利用Supervisor管理Python进程

脚本跑着跑着挂了怎么办?Supervisor就是干这个的——保证Python脚本持续运行,崩了自动重启,还能管理日志。配置起来也很清晰:

  • 安装Supervisor:sudo yum install -y supervisor
  • 创建配置文件(/etc/supervisor/conf.d/python_script.conf):
[program:my_python_script]
command=/usr/bin/python3 /path/to/your_script.py  # 替换为实际脚本路径
directory=/path/to/your_script_directory          # 脚本工作目录
autostart=true                                    # 开机自启
autorestart=true                                  # 崩溃自动重启
stderr_logfile=/var/log/my_python_script.err.log  # 错误日志路径
stdout_logfile=/var/log/my_python_script.out.log  # 输出日志路径
  • 启动Supervisor并加载配置:
sudo systemctl start supervisord
sudo supervisorctl reread    # 重新读取配置
sudo supervisorctl update    # 更新进程列表
sudo supervisorctl status    # 查看进程状态

之后用supervisorctl命令就能手动启停进程,日志文件也方便排查运行问题。

4. 使用Glances工具监控系统与Python进程

如果不想写代码,Glances是个不错的选择。它本身就是Python写的跨平台监控工具,支持终端模式和Web模式,对Python进程的CPU、内存、线程数一目了然。

  • 安装Glances:sudo yum install -y epel-release && sudo yum install -y glances
  • 启动方式:
    • 终端模式:直接运行glances,按q退出
    • Web模式:glances -w,然后访问http://服务器IP:61208

Glances会自动显示所有运行中的Python进程及其资源占用,还支持排序和过滤,日常快速巡检非常方便。

5. 使用Prometheus+Grafana实现高级监控

对于大规模Python应用,时序监控是标配。Prometheus负责收集数据,Grafana负责可视化。集成方式也很成熟:

  • 安装Prometheus,配置prometheus.yml,添加Python应用的监控目标,例如:job_name: 'python_app', static_configs: [{'targets': ['localhost:5000']}]
  • 在Python应用中集成prometheus_client库(pip install prometheus_client),暴露指标:
from prometheus_client import start_http_server, Gauge
import random
import time

# 定义指标
cpu_usage = Gauge('python_app_cpu_usage', 'Python应用CPU使用率')
memory_usage = Gauge('python_app_memory_usage', 'Python应用内存使用率')

# 模拟数据收集
start_http_server(5000)  # 启动HTTP服务器,暴露指标
while True:
    cpu_usage.set(random.uniform(10, 50))   # 模拟CPU使用率
    memory_usage.set(random.uniform(20, 60)) # 模拟内存使用率
    time.sleep(5)
  • 安装Grafana并配置Dashboard,导入Prometheus数据源,创建面板展示CPU、内存等指标的趋势图。这套方案适合需要长期存储、告警和复杂聚合的场景。

6. 使用Py-spy进行性能分析

当Python应用出现性能问题时,Py-spy是个无侵入的利器。它不需要修改代码,就能生成火焰图,精确看到哪些函数耗时最多。

  • 安装Py-spy:pip install py-spy
  • 生成火焰图:
py-spy record -o profile.svg --pid $(pgrep -f your_script.py)

生成的profile.svg文件用浏览器打开,函数调用关系和时间占比一目了然,定位瓶颈非常高效。

以上就是CentOS下Python资源监控的几种主流方案,从轻量级脚本到企业级监控栈都有覆盖。实际项目中可以根据团队规模、运维成本和实时性要求灵活组合——比如用psutil做本地快照,用Prometheus+Grafana做全局大盘,再用Py-spy做定点性能剖析。工具不在多,用对就行。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 CentOS
相关文章 更多
codekit环境配置指南从安装到环境搭建完整教程
codekit环境配置指南从安装到环境搭建完整教程

详解 CodeKit 在 macOS 下的安装步骤、项目导入方法、Sass与JavaScript编译设置及浏览器自动刷新功能,助您快速搭建高效的前端开发环境。

codex安装windows 命令行完整操作教程
codex安装windows 命令行完整操作教程

详解Windows环境下安装OpenAI Codex CLI的步骤,包括WSL环境检查、Node.js/npm配置、npm全局安装命令及首次启动验证,适合开发者快速上手。

NativeRest环境配置要求与完整操作教程
NativeRest环境配置要求与完整操作教程

学习如何配置 NativeRest REST API 客户端。涵盖 Windows/macOS/Linux 安装后的工作区创建、环境变量管理、请求编辑及响应查看步骤,帮助开发者快速完成基础环境搭建与连通性测试。

CSS设置透明度的注意事项有哪些?opacity属性详解
CSS设置透明度的注意事项有哪些?opacity属性详解

深入解析CSS中设置透明度的核心属性opacity,剖析子元素继承、事件穿透、层叠上下文等关键注意事项,并提供与rgba、hsla的实用选型对比。

flutter页面传值到后台的方法及示例代码
flutter页面传值到后台的方法及示例代码

flutter页面传值到后台的完整实现方法及示例代码,帮助读者快速掌握相关技术要点。

Java 8至21新特性代码写法对比:Lambda、Record与Switch
Java 8至21新特性代码写法对比:Lambda、Record与Switch

本文通过具体的旧版与新版代码对比,详细剖析Java 8引入的Lambda表达式、Java 14/16引入的Record类,以及Java 12至21逐步演进完善的Switch表达式与模式匹配,展示代码简化路径与避坑要点。

AI智能体开发培训课程学什么及实战内容介绍
AI智能体开发培训课程学什么及实战内容介绍

系统梳理AI智能体开发培训的核心知识模块、技术栈选型与典型实战项目,解析低代码平台与纯代码框架的差异,提供从零构建可落地智能体的完整学习与实施路径。

Java子类未实现抽象方法编译错误修复指南
Java子类未实现抽象方法编译错误修复指南

针对Java开发中常见的“子类未实现抽象方法”编译错误,深入分析报错原因,提供重写实现、声明抽象子类两种标准修复路径,并总结参数签名、访问修饰符等典型避坑要点。

解决PHP递归报错:max_nesting_level限制与内存溢出处理
解决PHP递归报错:max_nesting_level限制与内存溢出处理

遇到PHP递归报错时,不要盲目调大max_nesting_level。本文教你区分Xdebug限制、内存耗尽和正则递归错误,提供代码级的终止条件优化与迭代替代方案,彻底解决栈溢出问题。

PHP递归中static变量与引用传递的常见陷阱及调试
PHP递归中static变量与引用传递的常见陷阱及调试

本文分析PHP递归中static变量导致的状态污染及引用传递引发的共享数据修改问题。提供具体的代码复现、缓存键设计建议及调试打印技巧,帮助开发者避免隐蔽的逻辑错误。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)
Windows

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。