Rsyslog:使用 TCP 在集中式日志服务器上打开 1047 个文件描述符后停止

Rsyslog:使用 TCP 在集中式日志服务器上打开 1047 个文件描述符后停止

我们有 heroku 向 1 个日志服务器倾倒数据。有很多实例 (~100) 使用 TCP 将其日志发送到此服务器。服务器根据主机名过滤日志,并将它们放入以主机名命名的目录中。一段时间内一切都运行正常,但我注意到当我使用检查打开的描述符时,lsof它在达到 1047 后停止。除了将日志写入单独的目录中外,每个日志命令都会记录到 syslog.log 文件中。打开第 1047 个 FD 后,此文件将继续更新。这就是我认为它与无法打开更多文件描述符有关的原因。我该如何解决这个问题?

答案1

这是一个很常见的问题。大多数系统的默认进程限制对于现代硬件来说没有多大意义。

您的操作系统上的 limits.conf 手册页应该会为您指明正确的方向。

在许多 Linux 发行版中,设置限制的文件位于

/etc/security/limits.conf

这个问题解决的是更普遍的问题。

高容量系统的实际最大打开文件描述符 (ulimit -n)

相关内容