
← Andrej Karpathy的RSS订阅清单New · 7 min
Linux源码:「D状态不等于磁盘IO」— GPU也会推高负载
Linux源码:「D状态不等于磁盘IO」— GPU也会推高负载
Linux 的 load average 并不只是“CPU 有多忙”的指标:它还会计入处于不可中断等待(D 状态)的任务。磁盘、网络、NFS、GPU 驱动等任一内核依赖链卡住,都可能让负载飙升,即使 CPU 几乎空闲。
本文通过重新核对 Linux、NetBSD、OpenBSD、FreeBSD 与 Illumos 的内核源码,揭示“load average”在不同 Unix 系统中其实采用完全不同的统计口径。本期将深度解析这段历史包袱,以及如何避免把 D 状态简单误判为磁盘 IO 问题。
原文链接:
https://utcc.utoronto.ca/~cks/space/blog/unix/ManyLoadAveragesOfUnixII
原文标题:The many load averages of Unix(es) in 2026
主要内容:
• Linux 的 load average = 可运行任务 + 不可中断等待任务,并非纯粹的 CPU 调度压力。
• NetBSD、OpenBSD、FreeBSD 和 Illumos 的核心口径更接近:主要统计正在运行或可运行的任务。
• Linux 在 1993 年继承并固化了旧式统计方式,使其负载数字与其他 Unix 系统不可直接比较。
• D 状态表示不可中断等待,不等同于“等待磁盘 IO”;GPU、网卡、文件系统和网络请求都可能造成 D 状态。
• 排障不应只盯 load average,应结合 PSI、D 状态任务与调用栈,区分 CPU 瓶颈和具体资源阻塞。
推荐理由: