插件窝 干货文章 如何在Linux上监控系统性能

如何在Linux上监控系统性能

监控 功能 示例 磁盘 403    来源:    2025-04-16

在Linux系统中监控系统性能是运维和开发人员的常见需求,以下是全面的解决方案和工具推荐:


一、基础命令工具

  1. top / htop

    • 功能:实时监控进程、CPU、内存、负载。
    • 安装htop需额外安装(sudo apt install htop)。
    • 操作
      • top中按 P(CPU排序)、M(内存排序)、q退出。
      • htop支持鼠标交互和颜色高亮。
  2. vmstat

    • 功能:查看虚拟内存、进程、CPU活动。
    • 示例vmstat 1 5(每秒1次,共5次)。
  3. iostat(sysstat包)

    • 功能:监控磁盘I/O和CPU使用率。
    • 安装sudo apt install sysstat
    • 示例iostat -dx 2(每2秒显示磁盘详情)。
  4. free

    • 功能:查看内存使用(-h人性化显示)。
    • 示例free -h
  5. df / du

    • 功能:磁盘空间监控。
    • 示例df -h(磁盘分区)、du -sh /path(目录大小)。
  6. netstat / ss

    • 功能:网络连接和端口监控。
    • 示例ss -tulnp(监听端口)。

二、高级工具

  1. dstat

    • 功能:综合监控CPU、磁盘、网络等。
    • 安装sudo apt install dstat
    • 示例dstat -cdngy(组合监控)。
  2. sar(sysstat包)

    • 功能:历史性能数据收集。
    • 配置:编辑/etc/default/sysstat启用日志。
    • 示例sar -u 1 3(CPU使用率)。
  3. nmon

    • 功能:交互式多维度监控(CPU、内存、磁盘等)。
    • 安装sudo apt install nmon
    • 操作:运行nmon后按快捷键(如c=CPU,m=内存)。

三、图形化工具

  1. gnome-system-monitor

    • 功能:图形化进程和资源监控(适合桌面环境)。
  2. Grafana + Prometheus

    • 功能:可视化监控和告警。
    • 部署
      • 安装Prometheus采集数据。
      • 使用Grafana配置仪表盘。
  3. Netdata

    • 功能:实时Web仪表盘,监控全系统指标。
    • 安装:一键脚本(bash <(curl -Ss https://my-netdata.io/kickstart.sh))。

四、日志与长期监控

  1. journalctl

    • 功能:查看systemd日志。
    • 示例journalctl -u nginx --since "1 hour ago"
  2. ELK Stack(Elasticsearch+Logstash+Kibana)

    • 功能:集中化日志分析和可视化。

五、自定义脚本

  • 示例脚本(保存为monitor.sh): bash #!/bin/bash echo "CPU Load: $(uptime | awk -F'load average: ' '{print $2}')" echo "Memory Free: $(free -h | awk '/Mem/{print $4}')"
  • 定时任务:通过crontab -e添加: bash */5 * * * * /path/to/monitor.sh >> /var/log/monitor.log

六、最佳实践

  1. 关键指标

    • CPU:使用率(%user >70%需警惕)。
    • 内存:剩余量(避免频繁Swap)。
    • 磁盘:%util(>80%可能瓶颈)。
    • 网络:TX/RX流量突增需排查。
  2. 报警阈值

    • 使用Prometheus AlertmanagerZabbix设置阈值告警。
  3. 日志轮转

    • 配置logrotate防止日志爆满。

七、扩展工具推荐

  • bpytop:现代化htop替代(Python编写)。
  • Glances:跨终端监控工具(pip install glances)。
  • Zabbix:企业级监控方案。

通过组合上述工具,可以构建从实时到历史、从命令行到可视化的全方位监控体系。根据需求选择轻量级命令(如htop)或长期日志方案(如Prometheus)。