我的Diffusion服务器出了问题。以下错误在服务器日志中多次出现:
|WARN|Client Connector Thread|PUSH-000191|Connector 'com.pushtechnology.diffusion.io.nio.
AcceptSelector$SelectorEventHandler@2f6b3a50:'
- Unable to accept connection.|com.pushtechnology.diffusion.io.nio.AcceptSelector
java.io.IOException: Too many open files
我理解这可能是因为打开了太多的文件描述符。任何人都知道如何解决这个问题?
答案 0 :(得分:1)
当达到可以同时为一个进程打开的文件数(关联的文件描述符)时,将显示此消息。这可能是由于几个不同的原因造成的,例如:
您可以通过运行JConsole
并检查MBeans/java.lang/OperatingSystem/Attributes
中的值来确定操作系统强加的最大文件描述符计数的当前值。您需要的数据位于MaxFileDescriptorCount
和OpenFileDescriptorCount
下。当OpenFileDescriptorCount
达到MaxFileDescriptorCount
设置的限制时,会显示您看到的警告。
要解决此问题,您需要增加MaxFileDescriptorCount
值。这可以通过修改Diffusion的启动脚本来完成。只需将以下行添加到diffusion.sh
:
ulimit -n 8192
此Knowledge Base article包含有关显示java.io.IOException: Too many open files
警告消息的问题的详细信息。