插件窝 干货文章 如何使用Linux监测系统性能

如何使用Linux监测系统性能

监控 工具 告警 CPU 328    来源:    2025-04-18

在Linux系统中监测系统性能是运维和开发人员的常见需求,以下是全面的方法和工具指南:

一、基础命令工具

  1. CPU监控

    • top:实时动态查看CPU、内存使用情况(按1显示多核)
    • mpstat -P ALL 1:每核心CPU使用率统计(需sysstat包)
    • sar -u 1 3:历史CPU使用率采样
  2. 内存监控

    • free -h:查看内存/swap使用情况(-h人类可读格式)
    • vmstat 1:虚拟内存统计(关注si/so交换情况)
  3. 磁盘I/O

    • iostat -x 1:磁盘吞吐和延迟监控(%util>70%需注意)
    • iotop:类似top的磁盘I/O进程监控(需安装)
  4. 网络监控

    • nload:实时网络流量(按左右键切换网卡)
    • ss -tulnp:比netstat更高效的连接查看

二、高级工具集

  1. 综合监控

    • htop:增强版top(支持鼠标操作、树状视图)
    • glances:跨平台监控工具(支持API和告警)
  2. 性能分析

    • perf top:CPU热点函数分析(需安装linux-tools)
    • strace -p <PID>:跟踪进程系统调用
  3. 日志工具

    • dmesg -T:查看内核日志(-T显示人类可读时间)
    • journalctl -f:实时查看systemd日志

三、企业级解决方案

  1. 数据收集

    • Prometheus + Grafana
      • Node Exporter采集主机指标
      • 配置Grafana仪表盘(推荐ID:8919, 1860)
  2. 分布式监控

    • Zabbix:支持自动发现和复杂告警
    • Nagios:经典的企业监控方案
  3. 云原生方案

    • Kubernetes环境:
      • kubectl top nodes/pods
      • 部署Prometheus Operator

四、性能调优要点

  1. 瓶颈识别流程:

    CPU饱和 → 检查load average → 分析进程(perf)
    I/O等待 → 检查await值 → 定位进程(iotop)
    内存不足 → 检查OOM日志 → 优化swappiness
    
  2. 关键配置文件:

    • /proc/sys/vm/swappiness(交换倾向)
    • /sys/block/sda/queue/scheduler(I/O调度器)

五、自动化监控脚本示例

#!/bin/bash
# 简易性能快照工具
LOG_FILE="/tmp/system_profile_$(date +%Y%m%d_%H%M).log"

{
    echo "===== $(date) ====="
    echo -e "\n# CPU Top10"
    ps -eo pid,user,%cpu,cmd --sort=-%cpu | head -11

    echo -e "\n# Memory Top10"
    ps -eo pid,user,%mem,cmd --sort=-%mem | head -11

    echo -e "\n# Disk Space"
    df -h | grep -v tmpfs

    echo -e "\n# Network Connections"
    ss -s
} > $LOG_FILE

六、推荐学习路径

  1. 初级:掌握top/vmstat/iostat组合使用
  2. 中级:学习perf/ftrace性能分析
  3. 高级:部署完整的监控告警体系(如Prometheus+Alertmanager)

通过以上工具组合,可以构建从实时监控到历史分析的完整性能观测体系。对于生产环境,建议至少部署基础版的Prometheus监控系统,关键指标保存周期建议不低于15天。