我们有 heroku 向 1 个日志服务器倾倒数据。有很多实例 (~100) 使用 TCP 将其日志发送到此服务器。服务器根据主机名过滤日志,并将它们放入以主机名命名的目录中。一段时间内一切都运行正常,但我注意到当我使用检查打开的描述符时,lsof
它在达到 1047 后停止。除了将日志写入单独的目录中外,每个日志命令都会记录到 syslog.log 文件中。打开第 1047 个 FD 后,此文件将继续更新。这就是我认为它与无法打开更多文件描述符有关的原因。我该如何解决这个问题?
答案1
这是一个很常见的问题。大多数系统的默认进程限制对于现代硬件来说没有多大意义。
您的操作系统上的 limits.conf 手册页应该会为您指明正确的方向。
在许多 Linux 发行版中,设置限制的文件位于
/etc/security/limits.conf
这个问题解决的是更普遍的问题。