性能·CPU / 命令文档

Linux系统平均负载

$ load 1 个章节 Linux 命令详解

概述

纯干货!深入理解系统性能监控的核心指标

基本概念 存在价值 数值理解 监控要点 故障排查 最佳实践 互动演示 什么是平均负载 平均负载(Load Average)反映系统在特定时间段内的工作负载程度,统计处于以下状态的进程数量: 正在运行的进程(Running) 等待运行的进程(Runnable,在运行队列中) 等待I/O完成的进程(Uninterruptible Sleep) 总结下,就是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数! 查看平均负载 $ uptime 10:30:25 up 5 days, 2:15, 3 users, load average: 2.1, 1.8, 1.5 $ top top - 10:30:25 up 5 days, 2:15, 3 users, load average: 2.1, 1.8, 1.5 $ w 10:30:25 up 5 days, 2:15, 3 users, load average: 2.1, 1.8, 1.5 这三个数值分别代表:1分钟、5分钟、15分钟的平均负载。 平均负载的价值 系统健康诊断 平均负载是判断系统整体健康状况的重要指标,比单纯的CPU使用率更全面。 性能预警 当负载持续升高时,预示着即将出现性能瓶颈,提供早期预警。 容量规划 通过长期负载趋势分析,为硬件升级和系统扩展提供决策依据。 全面监控 不仅反映CPU状况,还包含I/O等待,提供系统全貌视图。 如何理解负载数值 负载与CPU核心数的关系 4核CPU系统负载示例 负载 1.0 (25%) 轻松运行 负载 2.8 (70%) 良好状态 负载 4.0 (100%) 满载运行 负载 6.0 (150%) 系统过载 经验法则 负载 < 0.7 × 核心数:系统运行良好 负载 = 核心数:系统满载但正常 负载 > 核心数:系统过载,需要关注 日常监控要点 建立系统基线 首先要了解系统在正常业务场景下的负载水平: # 持续观察负载变化 watch -n 1 uptime # 记录一天的负载变化 sar -q 1 86400 > load_baseline.txt # 查看历史负载数据 sar -q -f /var/log/sa/sa01 实时监控命令 基础监控命令 # 系统整体状况 vmstat 1 5 # CPU和负载详情 top htop # 更详细的系统统计 sar -u -q 1 5 负载分析技巧 观察负载趋势 不要只看瞬时值,重点关注5分钟和15分钟负载的变化趋势。如果1分钟负载远高于15分钟负载,说明是短期峰值;反之则可能是持续性问题。 区分负载类型 通过top命令中的%wa(等待I/O时间)来判断是CPU密集型还是I/O密集型负载。高%wa表示I/O瓶颈。 结合其他指标 平均负载需要与CPU使用率、内存使用、磁盘I/O等指标综合分析,单一指标可能误导。 高负载故障排查 发现高负载时的处理流程 不要慌张,按照标准流程逐步排查,避免盲目操作导致问题恶化。 第一步:系统基础检查 uptime free -h df -h 第二步:详细排查分析 CPU负载分析 # 查看CPU各种状态的时间占比 top -d 1 # 关注:%us(用户), %sy(系统), %wa(等待IO), %id(空闲) # 查看每个CPU核心的使用情况变化 mpstat -P ALL 1 5 # 查看最消耗资源的进程 ps aux --sort=-%cpu | head -10 pidstat -u 5 1 I/O负载分析 # 查看磁盘I/O统计 iostat -x 1 5 # 实时查看I/O最活跃的进程 iotop # 查看最消耗资源的进程 ps aux --sort=-%mem | head -10 # 查看文件系统使用情况 lsof +D /path/to/directory 第三步:定位问题进程 # 查看进程详细信息 top -p PID # 查看进程打开的文件 lsof -p PID # 查看进程网络连接 ss -p | grep PID # 分析进程调用栈 pstack PID 运维最佳实践 告警策略设计 轻度告警 负载 > 核心数 × 0.7持续时间 > 5分钟 中度告警 负载 > 核心数持续时间 > 5分钟 严重告警 负载 > 核心数 × 1.5持续时间 > 3分钟 监控工具推荐 Zabbix:企业级监控解决方案 Prometheus + Grafana:现代化监控栈 Nagios:经典的监控系统 htop/atop:增强版系统监控工具 预防性维护 # 定期清理系统日志 logrotate -f /etc/logrotate.conf # 清理临时文件 find /tmp -type f -atime +7 -delete # 设置进程资源限制 ulimit -u 1024 # 限制用户进程数 ulimit -n 4096 # 限制打开文件数 # 使用systemd限制服务资源 # /etc/systemd/system/myservice.service [Service] CPUQuota=50% MemoryLimit=1G 互动演示 负载模拟器 通过下面的按钮模拟不同的系统负载情况: 正常负载 高负载 严重过载 重置 $ uptime 14:30:25 up 2 days, 5:15, 3 users, load average: 0.8, 0.9, 1.0 系统状态: 正常运行 CPU核心数: 4 负载评估: 良好(20% 负载率) 学习建议 理论学习很重要,但实践更关键。建议在测试环境中: 使用stress工具模拟CPU负载 使用dd命令模拟I/O负载 观察不同场景下的负载变化 练习使用各种监控命令

同分类 · 其他命令文档