
transcript
show notes
Load average 并不是一个直观的“CPU 使用率”指标,而是 Unix 历史演进中多项内核设计选择的结果。本文深度解析这个诞生于单核时代的数字:在多核环境中,它为何仍以绝对任务数量呈现;不同线程模型又如何改变内核“看见”的负载。
节目还进一步拆解 I/O 等待被计入负载后的影响:高 load average 与低 CPU 使用率为何能同时出现。理解这些边界,才能避免把一个看似精确的监控数字,误读成系统真实繁忙程度的结论。欢迎结合原文阅读,建立更可靠的性能分析直觉。
原文链接:
https://utcc.utoronto.ca/~cks/space/blog/unix/LoadAverageHistoricalIssues
原文标题:Some (mostly historical) issues with the Unix load average
主要内容:
• Load average 起源于单核 Unix,最初主要表示正在运行或等待运行的任务数量,而非百分比。
• 在现代多核系统中,load average 通常不按 CPU 核数归一化:四核机器的负载为 2,可能仍有约一半 CPU 算力空闲。
• 内核统计的是自己可见的调度实体;Linux 将内核线程纳入统计,但用户态协程、green thread 等运行时内部排队并不会直接反映在 load average 中。
• Linux 还会将不可中断睡眠状态的任务纳入负载,因此存储 I/O、NFS 等等待可能造成高负载、低 CPU 使用率的组合。
• 1、5、15 分钟负载是采样后的指数衰减平均值,必须结合 CPU 核数、运行时模型、I/O 与延迟指标共同判断。
推荐理由:
这是一篇能纠正常见运维直觉的底层文章。它不只解释“负载高”意味着什么,更追溯不同 Unix 系统在多核、线程和等待状态上的历史选择。对于需要排查性能问题、解读监控告警,或运行 Go 等高并发服务的工程师而言,它提醒我们:先理解指标由什么系统机制产生,再依据指标做决策。
---
「Andrej Karpathy的RSS订阅清单」为您精选全球最前沿的AI技术博客文章,深度剖析技术背后的核心洞察。
由 voieech.com 提供技术支持。





