Postgres CPU 占用过高
Postgres 的 CPU 问题通常源于查询执行计划不佳、缓存未命中或磁盘争用,这些问题往往会被误认为是纯计算负载过高。
Common symptoms
- 读写负载增加时 postgres 进程 CPU 占用上升
- 查询密集型接口的延迟增加
- 执行报表或扫描时 CPU 持续处于高位
Likely causes
- 顺序扫描或查询执行计划不佳
- 磁盘瓶颈
- 用于缓存的内存不足
- 连接数或工作进程压力过大
Evidence to look for
Postgres 显示为 top 中的首要进程
磁盘利用率和 await 时间上升
CPU 占用与特定查询时间窗口相关
What it usually means
数据库看起来像是 CPU 受限,但实际上往往是存储瓶颈或执行计划低效导致的。
What to do next
- 1查看查询执行计划并定位热点查询
- 2检查 buffer cache 的有效性以及是否存在内存压力
- 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