news 2026/5/12 4:51:47

Linux 服务器 load average 过高但 CPU 使用率低怎么排查?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux 服务器 load average 过高但 CPU 使用率低怎么排查?

Linux 服务器出现 load average 过高但 CPU 使用率低的情况,通常是磁盘 I/O 瓶颈或进程处于不可中断睡眠状态(D 状态)导致的。建议优先检查 iowait 占比和阻塞进程,而不是盲目增加 CPU 资源。

先说结论:高负载低 CPU 使用率绝大多数是 I/O 等待或内核态阻塞引起的,重点排查磁盘读写、Swap 交换和网络文件系统挂载。

  • 先确认:通过 top 或 vmstat 确认 wa(iowait)值是否偏高
  • 先处理:定位占用 I/O 的进程并检查磁盘健康状态,谨慎操作挂载点
  • 再验证:观察负载数值是否随 I/O 等待降低而回落

工具准备与安装

部分排查命令需要安装特定包,建议提前准备:

# CentOS/RHEL yum install -y sysstat iotop procps # Ubuntu/Debian apt install -y sysstat iotop procps

安装完成后,即可使用 pidstat、iostat 等命令。

分步排查与实操

1. 确认 I/O 等待情况
运行 top 命令,观察 CPU 行中的 wa 值。如果 wa 值持续较高(例如超过 30%)且显著高于 idle 值,说明瓶颈在 I/O。

top - 10:00:01 up 10 days, 1:00, 1 user, load average: 8.50, 8.20, 8.10 Tasks: 200 total, 1 running, 199 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.5 us, 0.2 sy, 0.0 ni, 98.0 id, 1.3 wa, 0.0 hi, 0.0 si, 0.0 st

解读:上图中 load average 高达 8.50,但 CPU idle 仍有 98.0%,wa 为 1.3%。若 wa 升高至 30% 以上且 idle 大幅下降,则确认为 I/O 瓶颈。

2. 查找阻塞进程
使用 pidstat 或 iotop 找出读写磁盘最频繁的进程。注意,有些内核线程或驱动问题也可能导致进程卡在 D 状态,此时 iotop 可能看不到明显占用,需结合 ps 查看状态为 D 的进程。

# 查看进程级 I/O 统计(每秒刷新) pidstat -d 1 # 实时查看 I/O 占用进程(需 root) iotop -o # 查看处于不可中断睡眠状态(D 状态)的进程 ps -eo stat,pid,comm | grep "^D"

解读:pidstat 输出中关注 kB_rd/s 和 kB_wr/s 列;ps 命令若输出大量 D 状态进程,通常意味着底层存储响应极慢或硬件故障。

3. 检查磁盘硬件与日志
运行 dmesg 查看是否有磁盘报错。如果是云服务器,检查控制台是否有磁盘性能受限或底层存储异常的通知。

dmesg -T | grep -i error # 示例输出 [Mon Oct 10 10:00:00 2023] end_request: I/O error, dev sda, sector 12345 [Mon Oct 10 10:00:01 2023] Buffer I/O error on dev sda1, logical block 67890

若出现类似 I/O error 或 Buffer I/O error,表明磁盘可能存在物理坏道或连接故障。

4. 检查挂载点与网络存储
如果使用了 NFS 或其他网络文件系统,网络延迟或服务端故障会导致客户端进程不可中断。

# 先检查是否有进程占用挂载点 lsof +f -- /mnt/nfs_share # 若无关键进程占用,再尝试卸载测试 umount /mnt/nfs_share

注意:生产环境严禁直接 umount,必须先通过 lsof 确认无关键业务进程占用,否则可能导致服务异常或数据丢失。

怎么验证是否生效

处理完成后,持续运行 uptime 或 top 观察 load average 数值。正常的表现是随着 I/O 等待(wa)降低,负载数值逐渐回落至 CPU 核心数附近。同时检查业务日志,确认没有因 I/O 超时产生的新报错。

风险与常见坑

  • 谨慎处理 D 状态进程:处于 D 状态的进程通常无法被 kill 掉。若必须重启服务器,请在确保数据已同步或业务允许中断的前提下操作,强制重启可能导致数据丢失。
  • 忽略 Swap 交换:内存不足导致频繁 Swap 交换也会产生大量 I/O 等待,检查 free -m 确认内存状态,必要时调整 swappiness 参数。
  • 监控盲区:部分虚拟化环境下,宿主机 I/O 争抢会导致客户机显示高 iowait,此时需联系服务商排查底层存储性能。
  • 盲目卸载挂载点:即使是非关键挂载点,也可能有后台日志进程正在写入,操作前务必使用 lsof 确认。

来源 https://www.zjcp.cc/ask/10842.html

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/12 4:49:19

ACE Awards:电子行业年度创新风向标与工程师成长指南

1. 项目概述:一场属于电子工程师的年度庆典如果你在半导体或电子设计行业待过几年,肯定对“EE Times”和“EDN”这两个名字不陌生。它们就像是电子工程师的“行业圣经”,每天刷一刷,看看又有哪些新芯片发布、哪些技术路线在争论&a…

作者头像 李华
网站建设 2026/5/12 4:47:45

掌握DPlayer弹幕字体大小调整:3种实用方法让观看体验飙升

掌握DPlayer弹幕字体大小调整:3种实用方法让观看体验飙升 【免费下载链接】DPlayer :lollipop: Wow, such a lovely HTML5 danmaku video player 项目地址: https://gitcode.com/gh_mirrors/dp/DPlayer DPlayer是一款功能强大的HTML5弹幕视频播放器&#xff…

作者头像 李华
网站建设 2026/5/12 4:45:35

3分钟搭建免费B站视频解析服务:PHP开源工具完全指南

3分钟搭建免费B站视频解析服务:PHP开源工具完全指南 【免费下载链接】bilibili-parse bilibili Video API 项目地址: https://gitcode.com/gh_mirrors/bi/bilibili-parse 想要在自己的网站或应用中嵌入B站视频?需要批量下载喜欢的视频内容&#x…

作者头像 李华
网站建设 2026/5/12 4:44:07

AI时代,为什么要转型Agent流程架构师?

文章指出,LLM应用的未来竞争力核心在于流程设计而非模型参数或提示词。介绍了三种关键Agent机制:ReAct通过思维链(CoT)实现推理与行动的交互循环;Plan-and-Execute强调先规划后执行的宏观流程设计;Reflexio…

作者头像 李华
网站建设 2026/5/12 4:42:47

AsyncRun.vim 项目根目录管理:智能识别和高效利用

AsyncRun.vim 项目根目录管理:智能识别和高效利用 【免费下载链接】asyncrun.vim :rocket: Run Async Shell Commands in Vim 8.0 / NeoVim and Output to the Quickfix Window !! 项目地址: https://gitcode.com/gh_mirrors/as/asyncrun.vim AsyncRun.vim 是…

作者头像 李华