В настоящее время я тестирую сервер с автоматическим тестовым клиентом, который имитирует большое количество пользователей.И сервер, и клиент написаны на Java.Клиент открывает соединение TCP / IP для каждого пользователя.И сервер, и клиент работают в Ubuntu Linux, клиент работает в 11.04, а сервер - в 10.04.
Тестирование прошло успешно до 27000 одновременно открытых соединений, после чего я решил перейти на 36000 (ресурсы серверов и клиентовна 27000 это было не совсем так, поэтому я решил сделать чуть больший прыжок). Когда я попытался запустить тест для 36k, я получил следующее исключение на стороне клиента :
- java.net.BindException: не могу назначить запрошенный адрес
Насколько я знаю на 36k, у меня все еще должны быть свободные порты, так как на обеих машинах больше ничего не работает, и tcp ограничивает номер порта 2 ^ 16, который равен 65536. Теперь, посколькуВ Linux я также установил количество открытых файлов для пользователя равным 100k с помощью ulimit -n 100000. Но я все еще получаю то же исключение.
Мне интересно, что еще может быть возможной причинойдля упомянутого исключения, или linux каким-либо другим способом ограничивает количество исходящих соединений?
Заранее спасибо,
Danijel