2014-09-10 94 views
0

在升级到gridgain 6.2.0之后,在mac和linux上运行我们的junit测试用例套件时,我们会得到“打开的文件过多”异常。个别的测试用例可以正常运行。我们只有在运行整个套件时才会出现这些错误。 Gridgain在6.2.x中保持打开的文件数是否有变化?以下是Mac上的例外情况(在Linux上,错误类似,但源于nio软件包)。在操作系统上增加打开的文件限制地址解决了这个问题,但是这个问题是一个错误还是只是一个额外的升级项目需要注意?GridGain 6.2.0/6.2.1:打开太多文件描述符

感谢

[2014-09-10 12:02:49,396] ERROR GridTcpDiscoverySpi - Failed to accept TCP connection 
On MAC OS you may have too many file descriptors open (simple restart usually solves the issue) [] 
java.net.SocketException: Invalid argument 
at java.net.PlainSocketImpl.socketAccept(Native Method) 
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398) 
at java.net.ServerSocket.implAccept(ServerSocket.java:530) 
at java.net.ServerSocket.accept(ServerSocket.java:498) 
at org.gridgain.grid.spi.discovery.tcp.GridTcpDiscoverySpi$TcpServer.body(GridTcpDiscoverySpi.java:5037) 
at org.gridgain.grid.spi.GridSpiThread.run(GridSpiThread.java:67) 

回答

2

从中GridGain的版本是你升级到6.2.1?这种错误很可能是由一台主机上的节点之间的共享内存通信引起的。它可以通过增加操作系统中的打开文件限制或关闭共享内存来解决。你能否检查你的例外是否没有共享内存而被复制?要将其关闭配置像这样的通信SPI:

<property name="communicationSpi"> 
    <bean class="org.gridgain.grid.spi.communication.tcp.GridTcpCommunicationSpi"> 
     <property name="sharedMemoryPort" value="-1"/> 
    </bean> 
</property> 
+0

我们从6.1.6升级。关闭共享内存,就像您建议的那样工作。谢谢! 这个解决方案是否有任何缺点(我们使用gridgain主要用于跨群集的网格作业分布,即cpu密集型工作)? – 2014-09-11 16:01:09

+0

此外,我注意到像你一样配置通信SPI可以摆脱下面的日志警告。这是预料之中的,因为我们的配置禁用了共享内存。这就是说,这是一个推荐的配置?我读了参考http://doc.gridgain.org/latest/GridTcpCommunicationSpi。感谢 '[2014-09-11 11:02:49,578] WARN GridTcpCommunicationSpi - 无法启动共享内存通信服务器。 []' – 2014-09-11 16:11:11