Lobsters | 原文链接 | 2026-09-11 收录

Unix 负载均值的历史遗留问题:多 CPU、线程与等待 IO

来源: utcc.utoronto.ca — 2026-09-09

概述

Chris Siebenmann 回顾了 Unix 负载均值在从单 CPU、无线程的 3BSD 时代演化到现代多处理器多线程环境过程中留下的三个问题。第一,多 CPU 上「负载」该表示什么:现代答案是全局的进程计数,两个持续繁忙的进程就是 2,与 CPU 数量无关,而 Irix 等系统当年选过另一种答案,理由是希望这个数字在单核与多核机器上含义一致。第二,线程如何计数,取决于内核能否看见它们——绿色线程对内核不可见,Linux 把线程实现成一种进程因而能被完整计入。第三,是否把等待磁盘 IO 的进程也算进来:3BSD 原始实现算,Linux 早期不算但很快改了。

核心要点

金句

负载均值是全系统范围内进程的计数;如果有两个进程持续繁忙,无论机器有多少 CPU,你的负载均值都是二。
返回 Lobsters 首页