温馨提示×

如何在CentOS上进行性能监控

小樊
39
2025-12-09 21:45:35
栏目: 智能运维

CentOS性能监控实操指南

一 快速上手 内置与常用命令

  • 系统概览与负载:uptimetop(按P按CPU、M按内存排序)、free -h(查看物理/交换/缓存)、df -h(磁盘空间)、vmstat 1 5(整体资源与I/O概览)。
  • 磁盘与I/O:iostat -xz 1(需安装sysstat,查看磁盘繁忙度、队列、await、svctm 等)、iotop(按进程查看磁盘读写,需安装)。
  • 进程与I/O细节:pidstat -d 1(按进程统计I/O)、ps aux --sort=-%cpu | head(按CPU占用列出进程)。
  • 网络与连接:ss -tulnp(比 netstat 更快更现代)、iftop(按连接实时带宽)、nload(按网卡总带宽)、vnstat -l(按时间统计历史/实时带宽)、nethogs(按进程统计带宽)、tcpdump(抓包分析,定位异常流量/连接)。
  • 日志与故障排查:journalctl -xe(系统级日志)、journalctl -u (服务日志)。

二 实时与可视化工具

  • 终端增强:htop(交互式、支持按键筛选/杀进程)、glances(跨平台,聚合CPU/内存/磁盘/网络/进程)、nmon(跨平台,CPU/内存/磁盘/网络一屏展示)、dstat(全能采样,CPU/内存/磁盘/网络合并视图)。
  • Web/集中式:
    • Cockpit(CentOS 内置/可选Web控制台,资源监控、服务与存储管理一体化,适合单机与小规模)。
    • Zabbix(企业级监控,支持告警、模板、图形与自动发现)。
    • Prometheus + Grafana(时序数据+强大可视化,适合中大型与云原生环境)。

三 历史与长期监控

  • 启用并采集系统活动数据:安装sysstat后启用并启动服务,使用sar回看历史指标。
    • 安装与启用:sudo yum install -y sysstat && sudo systemctl enable --now sysstat
    • 常用回看:
      • CPU:sar -u 1 60(每秒采样,共60次)
      • 内存:sar -r 1 60
      • 磁盘:sar -d 1 60
      • 网络:sar -n DEV 1 60
  • 网络历史统计:vnstat -l(实时)、vnstat -d/-m/-y(按日/月/年统计)。
  • 轻量Web监控:Monitorix(安装 EPEL 后部署,浏览器访问 http://<服务器地址>:8080/monitorix/)。

四 一键排查流程与关键指标

  • CPU瓶颈:运行top/htop,关注load average是否高于CPU核数、用户态/系统态占用、是否有进程长期占满;结合vmstat 1观察r(运行队列)是否持续偏大、si/so(换入/换出)是否非零。
  • 内存压力:用free -h查看可用内存与缓存命中;若swap持续增长或si/so频繁,说明内存紧张。
  • 磁盘I/O:用iostat -xz 1观察**%util是否接近100%awaitsvctm是否过高;再用iotop/pidstat -d 1**定位具体进程。
  • 网络异常:用iftop/nload确认带宽是否被占满;用nethogs定位按进程的流量;用ss -s查看当前连接数;必要时tcpdump抓包分析。
  • 服务与内核:用systemctl status journalctl -xe/-u 查看服务状态与错误日志,配合dmesg排查内核/驱动异常。

五 常用安装与启动命令

  • 基础工具:sudo yum install -y htop nmon dstat sysstat
  • 网络工具:sudo yum install -y epel-release && sudo yum install -y iftop nload nethogs vnstat
  • I/O工具:sudo yum install -y iotop pidstat
  • Web/集中式:
    • Cockpit:sudo yum install -y cockpit && sudo systemctl enable --now cockpit.socket
    • Monitorix:sudo yum install -y epel-release && sudo yum install -y monitorix && sudo systemctl enable --now monitorix.service(访问 http://:8080/monitorix/

0