Несмотря на то, что в Jetty может быть ошибка, я думаю, что более вероятным объяснением является то, что ваши ограничения открытых файлов слишком малы. Обычно 1024 по умолчанию просто недостаточно для веб-серверов с умеренным использованием.
Хороший способ проверить это - использовать Apache Bench для имитации входящего трафика, который вы видите. Выполнение этого на удаленном хосте будет генерировать 1000 запросов через 10 одновременных подключений.
ab -c 10 -n 1000 [http://]hostname[:port]/path
Теперь посчитайте сокеты на вашем веб-сервере, используя netstat ...
netstat -a | grep -c 192.168.1.100
Надеюсь, вы обнаружите, что ваши сокеты будут иметь плато при некотором значении, не намного превышающем 1024 (у меня 16384).
Еще одна хорошая вещь, которую нужно гарантировать, - это то, что соединения правильно закрываются в вашей бизнес-логике.
netstat -a | grep -c CLOSE_WAIT
Если вы видите, что это число продолжает расти в течение жизненного цикла вашего приложения, возможно, вам не хватает нескольких вызовов Connection.close ().