GridGain 6.2.0/6.2.1: открыто слишком много файловых дескрипторов

После обновления до gridgain 6.2.0 на Mac и Linux мы получаем исключения «слишком много открытых файлов» при запуске нашего набора тестовых примеров junit. Отдельные тестовые случаи работают нормально. Мы получаем эти ошибки только тогда, когда запускаем весь пакет. Изменилось ли что-нибудь в количестве файлов, которые gridgain держит открытыми в версии 6.2.x? Вот пример исключения на Mac (в Linux ошибка похожа, но связана с пакетом nio). Увеличение числа адресов открытых файлов в ОС решает проблему, но является ли эта проблема ошибкой или просто дополнительным пунктом обновления, который следует отметить?

Спасибо

[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)

person Vinay B    schedule 10.09.2014    source источник


Ответы (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>
person Valentin Kulichenko    schedule 11.09.2014
comment
Мы обновляемся с 6.1.6. Отключение общей памяти, как вы предложили, сработало. Спасибо! Есть ли у этого решения недостатки (мы используем gridgain в основном для распределения заданий сетки по кластеру, т.е. интенсивной работы процессора)? - person Vinay B; 11.09.2014
comment
Кроме того, я заметил, что настройка SPI связи, как вы предлагаете, избавляет от следующего предупреждения в журнале. Это ожидаемо, так как конфигурация отключает общую память. Тем не менее, это рекомендуемая конфигурация? Я прочитал ссылку на doc.gridgain.org/latest/GridTcpCommunicationSpi. Спасибо [2014-09-11 11:02:49,578] WARN GridTcpCommunicationSpi - Failed to start shared memory communication server. [] - person Vinay B; 11.09.2014

Похоже, что вопрос является дубликатом Сбой запуска Tomcat из-за 'java.net.SocketException Invalid arguments' в Mac OS X . Насколько я понимаю, решение — обновить JDK до 7u60 или выше, по крайней мере, у нас это работает. (Наши эксперименты показали, что на MacOs даже значительное увеличение лимита открытых файлов не решает проблему.)

person Ivan Veselovsky    schedule 16.10.2015