1

私はJavaサーバーアプリを作成しました。3800〜4000のネットワーク接続を同時に受け入れることができ、CPU /ネットワークの負荷は低いです(<40%)しかし、このしきい値を超えると、新しい接続を拒否するか、古い接続を強制終了して受け入れるため、ライブ接続数は約です3800 ~ 4000 (数は異なります)。

ソフトウェア自体、OS 構成、または CPU/NAT (40% 未満の負荷がかかっているという事実に関係なく) で、ここでボトルネックになる可能性のあるヒントを誰かに教えてもらえますか?

CPU: 4 コア (1 つのコアが 50%、他の 3 - 25% がロードされます) 環境: Amazon EC2、Windows Server 2003 R2

編集: メモリ使用量は 500 Mb 未満 JRE は 32 ビット、1.6.0_30 MaxUserPort は 65534 に設定されています

4

1 に答える 1

0

新しい接続を拒否します

正しい。TCP バックログ キューがいっぱいになると、それ以上の接続は受け入れられなくなります。Windows は RST を発行し、他のプラットフォームは着信要求を無視します。最初のケースではクライアントは「接続拒否」を取得し、2 番目のケースではクライアントは「接続タイムアウト」を取得します。

または古いものを殺して受け入れる

20年以上のネットワーキングの中で、私はそれを見たことがありません. この結論に至った症状は何ですか?

于 2011-12-23T03:20:29.747 に答える