2014-09-10 101 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