原始出处: - ServerFault #1120058: A linux machine with lots of processes in uninterruptible sleep state — Brian 的实战案例,ps 命令自身也陷入 D 状态,从
/proc/PID/stack追踪到call_rwsem_down_read_failed- Red Hat KB #2142081: NFS4.0: High Load but CPU idle - leading to a complete outage — vmcore crash 分析显示 4454 个进程卡在rpc_wait_bit_killable,NFS OPEN 操作阻塞链路完整追溯 - Brendan Gregg's Blog: Linux Load Averages: Solving the Mystery — 挖掘出 1993 年 Matthias Urlichs 的历史补丁,解释了 load average 纳入 TASK_UNINTERRUPTIBLE 的初衷 - ServerFault #1164437: CPU is idle, but huge load, and NFS client stop responding — NFS 邮件服务器高负载事故,load average 从 400 飙到 10000 - SUSE KB: Analysing processes in D state (uninterruptable sleep) — 系统化的 D 状态进程分析方法论 - ServerFault #227405: Linux kernel crash analysis. Blocked processes, IO and uninterruptible wait — CentOS 5.5 上 hung task 600s 超时,dmesg 中 TASK_UNINTERRUPTIBLE 的完整 Call Trace - LWN.net: The origin of Linux load averages — 内核社区对 nr_uninterruptible 在 load average 中角色的持续讨论 - Linux Kernel 源码:include/linux/sched.h(TASK_UNINTERRUPTIBLE 定义)、kernel/sched/core.c(__schedule)、kernel/sched/loadavg.c(calc_load_fold_active)、fs/proc/array.c(task_state_array)
本文首发于 CSDN 专栏《运维漏洞指南》,系列第 9 篇。该系列旨在用「可观测症状 → 排查回合 → 内核源码」的三步法,将国外高质量社区案例(ServerFault / LWN / Red Hat KB)搬运并适配到中文运维场景。

本文由 admin 原创,转载请注明出处。
评论
0