во время тестирования я получил erlang_error: "{badmatch, {error, system_limit}}, {module, function, 3}"? - PullRequest
3 голосов
/ 22 ноября 2010

Я выполняю нагрузочное тестирование моего сервера с количеством клиентов (200, 300, 500, .... 3000). Для тестирования я использую 64-битные системы Windows, и я использую сервер в одной системе и клиенты в другой системе. Все клиенты могут устанавливать соединения успешно, но через одну или две минуты сервер через erlang: error -> "{badmatch, {error, system_limit}}, {module, accept_function, 3}" для некоторых экземпляров сервера и умирает эти экземпляры сервера. Может у кого-нибудь есть решение для этого?

Заранее спасибо ..

Сринивас, Индия.

1 Ответ

6 голосов
/ 22 ноября 2010

Похоже, что вы достигли системного ограничения на количество портов, которые вам разрешено открывать в вашей системе. Прочитайте этот документ здесь , чтобы узнать, можете ли вы определить свои пределы.

В частности:

Открытые порты Максимальное количество одновременно открываются порты Erlang по умолчанию 1024. Этот лимит можно повысить до максимум 268435456 при запуске (см. переменную среды ERL_MAX_PORTS в erlang (3) максимальный предел 268435456 открытых портов будет хотя бы на 32-битной архитектуре быть недоступным из-за памяти нехватка.

Открытые файлы и сокеты Максимум количество одновременно открытых файлов и розетки зависят от максимума количество доступных портов Erlang, и настройки операционной системы и пределы.

...