发布于2026-07-01 阅读(0)
扫一扫,手机访问
在CentOS环境下,Python应用的资源监控是个老生常谈却又绕不开的话题。无论是排查性能瓶颈,还是保障服务稳定性,手里有几套趁手的监控方案总没错。下面整理了几种从轻量到企业级的监控手段,覆盖了系统资源、进程管理、可视化面板和性能分析,大家可以根据实际场景按需选用。
psutil是Python生态里最经典的跨平台资源库,CPU、内存、磁盘、网络,一个库全搞定。在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库,还能把资源变化趋势画成折线图,直观程度直接拉满。
光有命令行输出不够过瘾?用Flask搭一个简单的Web面板,实时数据直接展示在浏览器上。步骤也不复杂:
pip install flask psutilapp.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)
templates/index.html):
CPU使用率: -%
内存使用率: -%
运行python app.py后,访问http://服务器IP:5000,CPU和内存使用率就会每秒自动刷新。对于轻量级场景,这个方案够用了。
脚本跑着跑着挂了怎么办?Supervisor就是干这个的——保证Python脚本持续运行,崩了自动重启,还能管理日志。配置起来也很清晰:
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 # 输出日志路径
sudo systemctl start supervisord
sudo supervisorctl reread # 重新读取配置
sudo supervisorctl update # 更新进程列表
sudo supervisorctl status # 查看进程状态
之后用supervisorctl命令就能手动启停进程,日志文件也方便排查运行问题。
如果不想写代码,Glances是个不错的选择。它本身就是Python写的跨平台监控工具,支持终端模式和Web模式,对Python进程的CPU、内存、线程数一目了然。
sudo yum install -y epel-release && sudo yum install -y glancesglances,按q退出glances -w,然后访问http://服务器IP:61208Glances会自动显示所有运行中的Python进程及其资源占用,还支持排序和过滤,日常快速巡检非常方便。
对于大规模Python应用,时序监控是标配。Prometheus负责收集数据,Grafana负责可视化。集成方式也很成熟:
prometheus.yml,添加Python应用的监控目标,例如:job_name: 'python_app', static_configs: [{'targets': ['localhost:5000']}]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)
当Python应用出现性能问题时,Py-spy是个无侵入的利器。它不需要修改代码,就能生成火焰图,精确看到哪些函数耗时最多。
pip install py-spypy-spy record -o profile.svg --pid $(pgrep -f your_script.py)
生成的profile.svg文件用浏览器打开,函数调用关系和时间占比一目了然,定位瓶颈非常高效。
以上就是CentOS下Python资源监控的几种主流方案,从轻量级脚本到企业级监控栈都有覆盖。实际项目中可以根据团队规模、运维成本和实时性要求灵活组合——比如用psutil做本地快照,用Prometheus+Grafana做全局大盘,再用Py-spy做定点性能剖析。工具不在多,用对就行。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8