【问题标题】:tomcat too many filestomcat文件太多
【发布时间】:2025-11-25 01:05:01
【问题描述】:

我在使用 tomcat 一天后得到以下信息:

java    25006 root  996r  FIFO        0,6            894580 pipe
java    25006 root  997w  FIFO        0,6            894586 pipe
java    25006 root  998r  FIFO        0,6            894587 pipe
java    25006 root 1000r  FIFO        0,6            894588 pipe
java    25006 root 1001w  FIFO        0,6            894599 pipe
java    25006 root 1002r  FIFO        0,6            894600 pipe
java    25006 root 1003r   REG      254,6        0  8570556 /usr/share/apache-tomcat-5.5.30/temp/prn1614392207033974759xc (deleted)
java    25006 root 1004r  FIFO        0,6            894601 pipe
java    25006 root 1005w  FIFO        0,6            894607 pipe
java    25006 root 1006r  FIFO        0,6            894608 pipe
java    25006 root 1007r   REG      254,6        0  8570557 /usr/share/apache-tomcat-5.5.30/temp/prn1736781771548325427xc (deleted)
java    25006 root 1008r  FIFO        0,6            894609 pipe
java    25006 root 1009w  FIFO        0,6            894617 pipe
java    25006 root 1010r  FIFO        0,6            894618 pipe
java    25006 root 1011r   REG      254,6        0  8570558 /usr/share/apache-tomcat-5.5.30/temp/prn8390558105456339721xc (deleted)

对整个应用程序进行了多次审查以发现未关闭的流。

使用 tomcat 5.5.30 和 JRE 6u21。不使用 AntiJarLocking 和 AntiResourceLocking(任何组合都会导致相同的结果)。

是否有一个 Java 工具可以跟踪在 Java 代码中打开可关闭流的代码?这些管道是什么?可能是与数据库服务器的未关闭连接(使用 C3P0)

艺术

【问题讨论】:

标签: tomcat


【解决方案1】:

在 UNIX® 和 Linux® 操作系统上出现打开文件过多消息。最大打开文件数的默认设置可能太低

为避免这种情况,请通过完成以下步骤将最大打开文件数增加到 8000:

Edit the /etc/security/limit.conf file.

将指定nofiles 值的语句更改为8000。 可选:如果您希望更改在当前会话中生效,请键入

ulimit -n 8000.

【讨论】: