Сервер сбрасывает новые соединения, но загрузка процессора / сети низкая - PullRequest
1 голос
/ 22 декабря 2011

Я написал приложение java-сервера, оно может одновременно принимать 3800-4000 сетевых подключений и загрузка ЦП / сети низкая (<40%). Но после этого порога оно отклоняет новое соединение или принимает его, убивая старое, так что живые соединенияколичество составляет около 3800-4000 (число варьируется). </p>

Может кто-нибудь дать мне хотя бы подсказку, что может быть узким местом здесь - само мое программное обеспечение, конфигурация ОС или ЦП / NAT (независимо от того, что ониговорит, что они загружены менее чем на 40%)?

Процессор: 4-ядерный (одно ядро ​​загружено на 50%, другое на 3 - 25%) Среда: Amazon EC2, Windows Server 2003 R2

Изменить: использование памяти менее 500 МБ JRE составляет 32 бита, 1.6.0_30 MaxUserPort установлен на 65534

1 Ответ

0 голосов
/ 23 декабря 2011

отклонить новое соединение

Исправить.После заполнения очереди невыполненных заданий TCP дальнейшие подключения не принимаются.Windows выдаст RST, другие платформы будут просто игнорировать входящий запрос.В первом случае клиент получит «отказано в соединении», во втором случае клиент получит «истекло время ожидания соединения».

или примет его, убив старый

Я никогда не видел такого за 20 лет работы в сети.Какие симптомы привели вас к такому выводу?

...