私はApache httpdマニュアルをオンラインで閲覧していて、これを有効にするためのディレクティブに出会いました。次のマニュアルページで説明を見つけましたtcp
。
TCP_DEFER_ACCEPT (since Linux 2.4)
Allow a listener to be awakened only when data arrives on the
socket. Takes an integer value (seconds), this can bound the
maximum number of attempts TCP will make to complete the
connection. This option should not be used in code intended
to be portable.
それから私はこの記事を見つけましたが、これがどのようなワークロードに役立つかはまだわかりません。httpd
このための特別なオプションがある場合、Webサーバーとの関連性が必要だと思います。またhttpd
、ネットワーク接続の方法だけでなく、オプションであるという事実から、必要なユースケースとそうでないユースケースがあると仮定しています。
記事を読んだ後でも、3方向ハンドシェイクが完了するのを待つことの利点が何であるかはわかりません。httpd
接続が形成された後に遅延を引き起こす可能性がある代わりに、ハンドシェイクが継続している間にそうすることで、関連するインスタンスをスワップインする必要がないことを保証することは有利に思えます。
また、この記事でTCP_DEFER_ACCEPT
は、ソケットの状態に関係なく、4つのパケット(ハンドシェーク、その後データ)が必要になると思われます。彼らがどのようにカウントを3に減らすか、それがどのように意味のある強化を提供するのか分かりません。
だから私の質問は基本的には、これは単に古い時代遅れのオプションですか、このオプションの実際のユースケースはありますか?