Linux 服务器:打开文件过多

Linux 服务器:打开文件过多

我在 Linux 服务器上运行一个应用程序。但服务器突然停止响应,但当我从其他机器 ping 服务器时,它允许 ping 但不允许登录服务器。不知道为什么?

设想:

  • 应用程序和服务器均运行良好。
  • 在特定时间,它似乎没有响应,因为我们无法登录服务器,但我们可以从其他机器 ping 该服务器。
  • 由于它不允许我们登录服务器,我们重新启动了服务器,然后我们才能登录。

现在的问题是,我们不确定为什么会发生这种情况。我们尝试查看/var/log/messages文件并发现以下可疑消息:

kernel: VFS: file-max limit 100000 reached

有人能帮我们检查一下哪些进程占用了这么多描述符吗?有没有日志文件可以让我们找到哪个进程占用了这么多的描述符?

如果需要更多信息,请告诉我。

谢谢

答案1

该消息表明机器文件句柄不足,请检查当前值并尝试增加该值。

List the current max-limit
#cat  /proc/sys/fs/file-max

要增加文件数量(对于整个系统),请将以下行添加到 sysctl.conf(/etc/sysctl.conf)

fs.file-max = 131072

运行以下命令重新读取配置文件

sysctl -p 

file-max 中的值表示 Linux 内核将分配的最大文件句柄数。当您收到大量有关文件句柄用尽的错误消息时,您可能需要增加此限制。尝试分配比 file-max 更多的文件描述符时,会报告错误“VFS:已达到 file-max 限制。

我不认为有日志可以告诉我们哪个进程打开了最大文件描述符

相关内容