Ottima domanda!
Tradizionalmente, KeepAlive è stata una buona cosa perché riduce in modo significativo l'overhead TCP di un caricamento generale della pagina, dove molte richieste (come tutte le immagini, css, js) vengono servite da un server. Se la tua pagina ha 85 risorse, si tratta di 85 handshake TCP a tre vie extra e la latenza aumenta. Molti anni fa con connessioni Internet più lente, questo era molto più importante di quanto lo sia ora, anche se è ancora abbastanza rilevante per i browser mobili o eventuali connessioni lente / ad alta latenza.
L'impatto qui menzionato si riferisce al tempo in cui tali connessioni TCP sono mantenute aperte e se ciò potrebbe esaurire rapidamente i processi figlio di Apache. La maggior parte delle impostazioni predefinite che ho visto sono:
KeepAliveTimeOut 15
MaxClients 256
Ciò significa che se avessi 256 diversi browser richiedono contenuti negli stessi 15 secondi, il 257 ° client dovrebbe attendere che le connessioni vengano interrotte. Non va bene: questo non è un traffico particolarmente intenso, quindi spiega questo consiglio. Potrebbe anche portare ad aumentare MaxClients per far fronte, che potrebbe consumare molta memoria. Quando uso KeepAlives, generalmente imposto KeepAliveTimeout su 2 o 3 secondi; è il tempo di inattività tra le richieste anziché l'intero tempo per tutte le richieste.
Se stai usando KeepAlive, c'è un atto di bilanciamento tra KeepAliveTimeout, MaxClients e risorse del server. A tale scopo, un "servizio httpd / apache2 fullstatus" mostrerà il numero di connessioni utilizzate da KeepAlives in qualsiasi momento, indicato con la "K" maiuscola.
Per Magento, però, non penso che tu abbia bisogno di KeepAlives.
Che cosa dovresti fare se hai un sito Enterprise a traffico molto elevato, sta usando un CDN per i tuoi contenuti statici.
Se vendi in più paesi, l'utilizzo di una rete CDN non solo accelererà il caricamento complessivo delle pagine per i tuoi clienti (il che è positivo), ma ridurrà notevolmente la larghezza di banda che arriva al tuo server. Le impostazioni in Sistema> Config> Web> [Un] secure rendono davvero banale l'integrazione di qualsiasi CDN per Media, Skin e JavaScript. Questa sarà la maggior parte delle richieste HTTP effettive e come bonus è possibile utilizzare diversi record DNS per parallelizzare i download tra i nomi host. Se lo stai facendo bene, quelle richieste toccheranno a malapena il tuo server, quindi non c'è più bisogno realeper KeepAlive. In questo caso, dovresti disabilitare KA; non vogliamo mantenere attiva la connessione quando sappiamo che il resto del contenuto viene offerto da un'altra parte. Se vuoi una raccomandazione CDN autonoma: CloudFlare è fantastico e ottieni persino SSL con il pacchetto gratuito.
Quando si utilizza un CDN come questo o se si utilizza qualsiasi altro tipo di proxy inverso (come Varnish), i KeepAlive HTTP Apache sono sostanzialmente irrilevanti.
Per riassumere, sono d'accordo che probabilmente dovresti disabilitare KeepAlive per evitare di saturare i tuoi processi Apache sotto carico, ma sicuramente utilizzare un CDN o un altro proxy inverso per le risorse, per mantenere il carico della tua pagina il più scattante possibile.