ApacheBench での Go HTTP サーバーの接続問題のトラブルシューティング
ApacheBench のテスト中に Go HTTP サーバーで接続の問題が発生しました。 ApacheBench は、「接続が拒否されました」または「操作がタイムアウトしました」などのエラーを返し、受信リクエストを処理するサーバーの能力に問題があることを示します。
根本原因の特定: ポートの枯渇
調査すると、サーバーの一時ポートが不足していることが明らかになりました。 macOS のデフォルトの一時ポート範囲は 49152 ~ 65535 ですが、キープアライブなしで大量の同時リクエストを処理するには不十分です。
ポート枯渇のメカニズム
各 HTTPキープアライブなしの /1.0 リクエストは、サーバー上の固有の一時ポートを消費します。このポート範囲がなくなると、オペレーティング システムは未使用のポートのリクエストをキューに入れます。
パフォーマンスへの影響
ポート キューがいっぱいになると、オペレーティング システムはさらに受信を抑制します。接続。その結果、クライアントで接続エラーやタイムアウトが発生する可能性があります。
問題の軽減
問題を軽減するには、次のオプションを検討してください:
以上がGo HTTP サーバーが「接続が拒否されました」または「操作がタイムアウトしました」エラーで ApacheBench テストに失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。