上下文切换与高 CPU
上下文切换是指 CPU 保存一个任务的状态并加载另一个任务的状态。适量切换是正常的,但过度切换会浪费 CPU 资源。
Evidence to look for
繁忙服务器上每秒上下文切换次数超过 50,000 次
CPU 占用率很高,但吞吐量停滞不前
减少线程数后性能得到改善
What it usually means
每次上下文切换都有开销:保存寄存器、刷新缓存、加载新状态。切换频率很高时,这些开销会变得非常显著。
What to do next
- 1减少线程或进程数量
- 2将关键线程绑定到特定 CPU 核心
- 3使用异步 IO 替代“每个连接一个线程”的模型
See what's causing your CPU
cpum.ai turns CPU, process, disk, and memory signals into plain-English explanations with evidence.
Open cpum.ai