Windows Server上postgres.exe僵尸进程无法清理及内存泄漏求助
软件环境
- OS: Windows Server 2016 version 1607
- Database: PostgreSQL 12.12
- Backend application: Django 4.0.8
- RamMap: v1.61
问题描述
服务器存在内存泄漏问题,用RamMap排查时发现:Processes页面显示大量带有PID、私有字节为4K的postgres.exe进程,但这些进程在任务管理器中完全不可见。
所有客户端通过部署在其他服务器上的Django后端应用,以HTTP POST方式访问PostgreSQL。
已尝试的无效方法
- 使用
taskkill /f /pid <PID>命令无法终止进程,因进程未在任务管理器中显示 - 重启PostgreSQL服务后,这类僵尸进程仍存在
- 降低客户端访问速度,进程数量仍持续增加
PostgreSQL查询结果
执行以下SQL查询:
SELECT state, backend_type, count(*) FROM pg_stat_activity GROUP BY state, backend_type ORDER BY backend_type, state;
得到结果:
| 状态 | 后端类型 | 数量 |
|---|---|---|
| NULL | autovacuum launcher | 1 |
| NULL | background writer | 1 |
| NULL | checkpointer | 1 |
| active | client_backend | 1 |
| idle | client_backend | 1 |
| NULL | logical replication launcher | 1 |
| NULL | walwriter | 1 |
求助需求
不清楚该如何清除这些进程,恳请提供解决指导;或者这些僵尸进程并非问题,不会导致内存泄漏?
内容的提问来源于stack exchange,提问作者Sean Hsieh
相关产品推荐
相关产品推荐

