core dump磁盘报警问题排查过程
这篇讲的是线上服务器磁盘突然报警的排查过程。作者从玩客项目一台机器分区占用超80%的告警入手,发现同批次其他机器都正常。 通过 `find` 命令查找大于100M的文件,发现大量 `core.数字` 格式的文件,锁定了磁盘占用的元凶——core dump文件堆积。进一步用 `gdb` 分析其中一个core文件,明确是 php-fpm 进程(pool www)产生的崩溃转储。 问题根因在于系统的 `core file size` 限制被设为 `unlimited`。通过检查 `/etc/security/limits.conf`,确实存在 `* soft core unlimited` 和 `* hard core unlimited` 的配置,导致php-fpm崩溃时会无限制地生成core dump文件。作者注释掉相关配置并重启php-fpm后,成功将core file size soft limit置为0,从源头禁止了生成。最后删除已有的core文件,将磁盘占用降至50%左右。 一个实用的细节是,文章结尾提醒,有时即便在 `limits.conf` 中看到core设为unlimited,但通过 `ulimit -a` 查看实际生效的可能仍是0,排查时需注意。