回答:
すばらしい質問です。
従来、KeepAliveは、多くのリクエスト(すべての画像、CSS、JSなど)が1つのサーバーから処理されるページ全体の負荷のTCPオーバーヘッドを大幅に削減するので、優れたものでした。ページに85個のアセットがある場合、85個の追加の3方向TCPハンドシェイクであり、レイテンシが追加されます。何年も前はインターネット接続が低速でしたが、これは現在よりもはるかに重要でしたが、モバイルブラウザーや低速/高遅延接続には依然としてかなり関連しています。
ただし、ここで説明する影響は、これらのTCP接続が開いたままになっている時間の長さ、およびそれがApacheの子プロセスをすぐに使い果たす可能性があるかどうかに関係します。私が見たほとんどのデフォルトは:
KeepAliveTimeOut 15
MaxClients 256
つまり、同じ15秒以内に256の異なるブラウザーがコンテンツを要求した場合、257番目のクライアントは接続が切断されるまで待機する必要があります。良くない-これは特にトラフィックが多いわけではないので、そのアドバイスを説明しています。また、対応するMaxClientsを増やすことにもなり、大量のメモリを消費する可能性があります。KeepAlivesを使用する場合は、通常、KeepAliveTimeoutを2秒または3秒に設定します。これは、すべてのリクエストの合計時間ではなく、リクエスト間のアイドル時間です。
KeepAliveを使用している場合は、KeepAliveTimeout、MaxClients、およびサーバーリソースのバランスを調整します。これを支援するために、「service httpd / apache2 fullstatus」は、KeepAliveによって一度に使用されている接続の数を表示します-大文字の「K」で示されます。
Magentoについては、キープアライブは必要ないと思います。
あなたは何をすべきあなたは非常に高いトラフィックのエンタープライズサイトを持っている場合はやっている、あなたの静的コンテンツのためのCDNを使用しています。
複数の国で販売している場合、CDNを使用すると、顧客のページ全体の読み込みが高速化されるだけでなく(これは良いことです)、サーバーに到達する帯域幅が大幅に減少します。System> Config> Web> [Un] secureの下の設定により、メディア、スキン、JavaScriptのCDNを統合するのは簡単です。これは実際のHTTPリクエストの大部分になります。おまけとして、さまざまなDNSレコードを使用して、ホスト名間でダウンロードを並列化できます。正しく実行している場合、これらのリクエストはサーバーにほとんど影響を与えないため、本当のニーズはありません。キープアライブ。この場合、KAを無効にする必要があります。残りのコンテンツが他の場所から提供されていることがわかっている場合は、接続を維持したくない。スタンドアロンのCDNの推奨が必要な場合:CloudFlareは素晴らしいですし、無料のパッケージでSSLも利用できます。
このようなCDNを使用する場合、または他の種類のリバースプロキシ(Varnishなど)を使用している場合、Apache HTTPキープアライブは基本的に無関係です。
要約すると、負荷の下でApacheプロセスが飽和するのを避けるために、おそらくKeepAliveを無効にする必要があることに同意しますが、ページのロードを可能な限り迅速に保つために、アセットにはCDNまたは他のリバースプロキシを必ず使用してください。