PUSH-000191:扩散服务器:打开的文件太多
PUSH-000191: Diffusion server: Too many open files
我的 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
我知道这可能是因为打开了太多的文件描述符。有人知道如何解决这个问题吗?
当达到一个进程可以同时打开的文件数(关联的文件描述符)时显示此消息。这可能是由几个不同的原因引起的,例如:
- 您的部分解决方案代码泄漏了文件描述符(如果您使用的是发布者)。
- 您的负载平衡器在使用后保持 TCP 套接字打开。
您可以通过 运行 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
警告消息的问题的更多信息。
我的 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
我知道这可能是因为打开了太多的文件描述符。有人知道如何解决这个问题吗?
当达到一个进程可以同时打开的文件数(关联的文件描述符)时显示此消息。这可能是由几个不同的原因引起的,例如:
- 您的部分解决方案代码泄漏了文件描述符(如果您使用的是发布者)。
- 您的负载平衡器在使用后保持 TCP 套接字打开。
您可以通过 运行 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
警告消息的问题的更多信息。