Abilitare KeepAlive o no?


9

Qual è il consenso su KeepAlive su un sito Magento ad alto traffico? Sembra che la maggior parte delle persone consiglia di averlo acceso ma poi Magento afferma di lasciarlo fuori nella loro Massimizzazione delle prestazioni e della scalabilità con Magento Enterprise Edition, sostengono

"Quando un server Web è sotto carico, mantenere le connessioni persistenti diventa svantaggioso, quindi la direttiva KeepAlive dovrebbe sempre essere disabilitata"

Pensieri?

Risposte:


4

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.


1
I keepalive sono ancora rilevanti durante un pull di origine da una CDN. L'abilitazione / disabilitazione non dovrebbe essere presa alla leggera e dovrebbe essere accuratamente testata. Suggerirei di ridurre le richieste, snellire le risorse prima ancora di prendere in considerazione una CDN: mal configurate, possono facilmente rendere i negozi più lenti che veloci.
Ben Lessani - Sonassi,

Come impostare questa impostazione keepalive sul sistema locale per il server XAMPP?
bhavin thummar,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.