如何确定是否发生了文件描述符问题?

如何确定是否发生了文件描述符问题?

今天早上,我在 CentOS 上运行的 Web 服务器/应用服务器 (apache/tomcat) 挂起了。挂起时,我注意到大量套接字处于 TIME_WAIT 或 CLOSE_WAIT 状态。我试图弄清楚如何更明确地确定挂起是否由达到文件描述符的最大数量引起,如果是,那么是每个进程的限制、每个用户的限制还是整个操作系统的限制。哪个操作系统最适合做出这个决定?

答案1

sysctl fs.file-nr

通过此命令,您将获得 3 个数字。第一个是已使用的文件描述符的数量,第二个是已分配但未使用的文件描述符的数量,最后一个是系统最大文件描述符。

检查基于进程的 fd 信息的另一种方法是

cat /proc/pid/limits 

您可以检查此过程的所有类型的限制,包括最大打开文件数。

这可能是开始调查 fd 相关问题的好地方

相关内容