ListeningIOReactor遇到一个已检查的异常:打开的文件太多

时间:2016-06-17 18:16:06

标签: wso2 wso2esb

我们在WSO2 ESB 4.9.0中面临一个奇怪的问题,错误如下。启动服务器后,服务器响应,但它不接受任何http请求。以下是错误。我们只是在测试20-50个需求......

2016-06-17 13:13:15,330 [-] [PassThrough HTTP-Listener I/O dispatcher Listener]  WARN PassThroughHttpListener System may be unstable: HTTP ListeningIOReactor encountered a checked exception : Too many open files
java.io.IOException: Too many open files
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241)
at org.apache.http.impl.nio.reactor.DefaultListeningIOReactor.processEvent(DefaultListeningIOReactor.java:170)
at org.apache.http.impl.nio.reactor.DefaultListeningIOReactor.processEvents(DefaultListeningIOReactor.java:153)
at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:349)
at org.apache.synapse.transport.passthru.core.PassThroughListeningIOReactorManager$1.run(PassThroughListeningIOReactorManager.java:506)
at java.lang.Thread.run(Thread.java:745

2 个答案:

答案 0 :(得分:1)

当您使用大量请求突发ESB并且ESB未正确关闭连接时,会发生这种情况。然后,与这些陈旧连接相关联的所有文件描述符保持原样并且耗尽。如果你已经禁用了keep-alive,那么这个问题很有可能发生。

答案 1 :(得分:1)

尝试增加文件句柄数量&用于解决上述问题的最大允许打开文件描述符数。

检查文件句柄的最大数量并且当前正在使用 cat / proc / sys / fs / file-nr

将其更改为WSO2建议的值(可以根据具体情况进行更改) sysctl -w fs.file-max = 65536

对于打开的文件描述符 ulimit -n

要更改此限制,请编辑/etc/security/limits.conf文件

* soft nofile 4096 * hard nofile 65535

有关综合列表,请参阅 的 https://docs.wso2.com/display/ESB490/Network+and+OS+Level+Performance+Tuning