1

我的英语就像 3 岁的婴儿。

最近,我做了一个具有许多文件访问权限的网站。

不幸的是,我的 tomcat 给了我以下错误消息

Fatal: Socket accept failed
java.net.SocketException: Too many open files
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408)
        at java.net.ServerSocket.implAccept(ServerSocket.java:462)
        at java.net.ServerSocket.accept(ServerSocket.java:430)
        at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
        at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:352)
        at java.lang.Thread.run(Thread.java:662)
org.apache.tomcat.util.net.JIoEndpoint$Acceptor run

当我在短时间内发送请求时会发生这种情况,我猜这个工作打开了太多流。

有谁知道如何解决这个问题。

我的环境是 { tomcat 6.0.35, java 1.6.0_31, centos 5 } 啊,这只发生在Linux上;

谢谢你。

4

2 回答 2

0

您很可能超出了默认的最大文件描述符数。

说明以及如何增加值:

http://honglus.blogspot.com.au/2010/08/tune-max-open-files-parameter-in-linux.html http://www.cyberciti.biz/faq/linux-increase-the-maximum -打开文件数/

于 2012-03-13T09:34:33.467 回答
0

检查系统分配的限制 cat /proc/sys/fs/file-nr

(最后一个数字)

如果需要,分配更多

编辑/etc/sysctl.conf

添加/更改fs.file-max = xxxxx

应用更改sysctl -p

查看cat /proc/sys/fs/file-max

您可能还设置了用户限制。

于 2012-03-13T09:37:23.993 回答