CPU 占用高因锁竞争
当多个线程争抢共享资源时,系统会把大量 CPU 用在协调与等待上,而不是做有用的工作。
Common symptoms
- CPU 占用高但吞吐量不理想
- 并发越高反而越糟
- 延迟峰值难以预测
Likely causes
- 互斥锁或锁竞争
- 共享数据结构在高负载下被频繁争用
- 临界区范围过大
Evidence to look for
perf 显示自旋或等待相关函数
上下文切换与延迟相关
减少线程数后吞吐量有所提升
What it usually means
机器忙于争夺锁,而不是做有成效的工作。
What to do next
- 1缩小临界区范围
- 2减少对共享状态的访问
- 3在热点路径上考虑使用无锁数据结构
See what's causing your CPU
cpum.ai turns CPU, process, disk, and memory signals into plain-English explanations with evidence.
Open cpum.ai