小编Joh*_*ith的帖子

Jetty IOException:打开的文件太多

我在一个大约100个请求/秒的网站上运行Jetty,前面有nginx.我刚刚在日志中注意到,在部署和启动Jetty之后的几分钟内,有一段时间它是垃圾邮件:

java.io.IOException: Too many open files
    at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
    at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:163)
    at org.mortbay.jetty.nio.SelectChannelConnector$1.acceptChannel(SelectChannelConnector.java:75)
    at org.mortbay.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:673)
    at org.mortbay.io.nio.SelectorManager.doSelect(SelectorManager.java:192)
    at org.mortbay.jetty.nio.SelectChannelConnector.accept(SelectChannelConnector.java:124)
    at org.mortbay.jetty.AbstractConnector$Acceptor.run(AbstractConnector.java:708)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
Run Code Online (Sandbox Code Playgroud)

一两分钟.我做了一个"lsof -u jetty"并看到了数百行:

java    15892 jetty 1020u  IPv6          298105434        0t0       TCP 192.168.1.100:http-alt->192.168.1.100:60839 (ESTABLISHED)
java    15892 jetty 1021u  IPv6          298105438        0t0       TCP 192.168.1.100:http-alt->192.168.1.100:60841 (ESTABLISHED)
java    15892 jetty 1022u  IPv6          298105441        0t0       TCP 192.168.1.100:http-alt->192.168.1.100:60842 (ESTABLISHED)
java    15892 jetty 1023u  IPv6          298105443        0t0       TCP 192.168.1.100:http-alt->192.168.1.100:60843 (ESTABLISHED)
Run Code Online (Sandbox Code Playgroud)

其中192.168.1.100是服务器内部IP.

正如你所看到的,这使得打开文件的数量达到默认的最大值1024.我可以增加它,但我想知道为什么会发生这种情况?它位于Jetty的nio socket接受器中,这是由连接请求风暴引起的吗?

java nio jetty ioexception

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

ioexception ×1

java ×1

jetty ×1

nio ×1