PostgreSQL服务崩溃后无法生成Core Dump文件的问题求助
PostgreSQL服务崩溃后无法生成Core Dump文件的问题求助
各位大佬好,我最近碰到个头疼的问题:我的PostgreSQL服务突然开始莫名崩溃,我想生成core dump文件来排查根因,但折腾了半天就是生成不了,求帮忙分析下!
我已经做了这些配置尝试:
- 临时执行了
ulimit -S -c unlimited来放开core dump限制 - 在
/etc/security/limits.conf里添加了* soft core unlimited,想让限制永久生效 - 配置了内核参数
kernel.core_pattern="/coredumps/core-%e-%s-%u-%g-%p-%t",指定了core文件的保存路径和命名规则 - 给
/coredumps目录设了chmod 777,排除了权限不足的问题 - 我还用测试进程验证过core dump功能是正常的:跑了
perl -MPOSIX -e '$0="ttt"; pause' &,接着执行kill -ABRT,core文件正常保存在/coredumps目录,文件名也完全符合预期
但PostgreSQL崩溃的时候,我在日志里看到了矛盾的信息:
Resource limits disable core dumping for process 3607766 (postmaster).
Process 3607766 (postmaster) of user 26 dumped core.
systemd-coredump@13-140614-0.service: Succeeded.
而且我对比了测试进程和PostgreSQL进程的/proc/pid/limits输出,发现两者的core dump限制有明显差异:测试进程的core dump限制是unlimited,但PostgreSQL进程的core dump限制看起来是被设成了0(也就是禁用状态)。
现在我就很困惑了:日志里既说“资源限制禁用了core dump”又说“已dump core”,但我在/coredumps里就是找不到对应的core文件,这到底是哪里出问题了?有没有大佬碰到过类似的情况,给指条明路?
备注:内容来源于stack exchange,提问作者plastikman156
相关产品推荐
相关产品推荐

