openGauss 数据库报错“failed: To0 many open files”

张开发
2026/4/11 16:51:48 15 分钟阅读

分享文章

openGauss 数据库报错“failed: To0 many open files”
openGauss 数据库报错“failed: To0 many open files”报错最近在测试搭建测试高斯数据库的时候发现当应用程序和数据库对接完成之后经常是运行一段时间就应用就挂了去查看了应用程序日志发现了如下报错failed: To0 many open files这个报错一般是应用程序或者是用户的文件描述符 被限制导致的在Linux系统中每个用户和程序的 文件描述符都是默认被限制到了 1024的排查流程看到上述报错可以确定数据库无法连接的原因就是因为文件描述符 被限制导致的所以我查看当前用户、omm运行数据库用户以及limit.conf配置。看带上面三个配置可以发现我们关于文件最大描述附最大值是配置到100000的理论上是不会被耗尽的。接下来查看一下当前已打开的文件数量# 查看特定 PostgreSQL 进程打开的文件描述符数量替换 PID 为实际进程 IDls-l/proc/PID/fd|wc-l# 查看该进程的具体限制配置cat/proc/PID/limits|grepMax open files通过cat /proc/PID/limits查看发现这里显示的文件描述最大值还是1024。问题定位后来通过在网上查询之后才发现因为如果进程是通过systemd的方式去管理的话。进程启动的时候是不会读取max-limits.conf的配置文件还是会使用默认的1024这个时候就需要我们去修改systemd 的启动脚本来指定 Max open files 。在启动脚本的【Service】中添加LimitNOFILE65536 LimitNPROC65536修改完之后记得reload一下systemd配置在重启数据库systemctl daemon-reload systemctl restart opengauss.service解决验证重启之后在查看文件描述符限制可以看到就变成了我们修改的数值了再重启应用程序后正常。

更多文章