Activer KeepAlive ou non?


9

Quel est le consensus sur KeepAlive avec un site Magento à fort trafic? Il semble que la plupart des gens recommandent de l'avoir, mais Magento déclare ensuite le laisser dans leur maximisation des performances et de l'évolutivité avec Magento Enterprise Edition, disent-ils

"Lorsqu'un serveur Web est soumis à une charge importante, la conservation des connexions persistantes devient désavantageuse, la directive KeepAlive doit donc toujours être désactivée"

Pensées?

Réponses:


4

Grande question!

Traditionnellement, KeepAlive était une bonne chose car il réduit considérablement la surcharge TCP d'une charge de page globale, où de nombreuses demandes (comme toutes les images, css, js) sont traitées à partir d'un seul serveur. Si votre page contient 85 éléments, cela représente 85 poignées de main TCP supplémentaires à trois voies, et la latence s'additionne. Il y a de nombreuses années, avec des connexions Internet plus lentes, cela était beaucoup plus important qu'aujourd'hui, bien que cela reste tout à fait pertinent pour les navigateurs mobiles ou toutes les connexions à latence lente / élevée.

L'impact mentionné ici concerne cependant la durée pendant laquelle ces connexions TCP sont maintenues ouvertes et si cela peut rapidement épuiser vos processus enfants Apache. La plupart des valeurs par défaut que j'ai vues sont:

KeepAliveTimeOut 15
MaxClients 256

Cela signifie que si 256 navigateurs différents demandaient du contenu dans les mêmes 15 secondes, le 257e client devrait attendre que les connexions disparaissent. Pas bon - ce n'est pas du tout un trafic particulièrement élevé, donc cela explique ces conseils. Cela peut également conduire à augmenter le nombre de MaxClients, ce qui pourrait consommer beaucoup de mémoire. Lorsque j'utilise KeepAlives, je règle généralement KeepAliveTimeout sur 2 ou 3 secondes; c'est le temps d'inactivité entre les demandes plutôt que le temps entier pour toutes les demandes.

Si vous utilisez KeepAlive, il y a un équilibre entre KeepAliveTimeout, MaxClients et les ressources du serveur. Pour vous aider, un «service httpd / apache2 fullstatus» vous montrera le nombre de connexions utilisées par KeepAlives à tout moment - indiqué par le «K» majuscule.

Pour Magento, je ne pense pas que vous ayez besoin de KeepAlives.

Ce que vous devriez être en train de faire si vous avez un trafic très élevé site Enterprise, utilise un CDN pour votre contenu statique.

Si vous vendez dans plusieurs pays, l'utilisation d'un CDN non seulement accélérera le chargement global des pages pour vos clients (ce qui est bien) mais réduira massivement la bande passante arrivant sur votre serveur. Les paramètres sous Système> Config> Web> [Un] sécurisé rendent très simple l'intégration de n'importe quel CDN pour les médias, la peau et JavaScript. Ce sera la majeure partie des demandes HTTP réelles, et en bonus, vous pouvez utiliser différents enregistrements DNS pour paralléliser les téléchargements entre les noms d'hôte. Si vous le faites correctement, ces demandes toucheront à peine votre serveur, il n'y a donc plus de réel besoinpour KeepAlive. Dans ce cas, vous devez désactiver KA; nous ne voulons pas maintenir la connexion en direct lorsque nous savons que le reste du contenu est servi depuis un autre endroit. Si vous voulez une recommandation CDN autonome: CloudFlare est fantastique, et vous obtenez même SSL avec le package gratuit.

Lorsque vous utilisez un CDN comme celui-ci, ou si vous utilisez tout autre type de proxy inverse (comme Varnish), vos KeepAlives HTTP Apache sont fondamentalement hors de propos.

Pour résumer, je conviens que vous devriez probablement désactiver KeepAlive pour éviter de saturer vos processus Apache sous charge, mais certainement utiliser un CDN ou un autre proxy inverse pour les actifs, pour garder vos chargements de page aussi rapides que possible.


1
Les Keepalives sont toujours pertinents lors d'une extraction d'origine à partir d'un CDN. L'activation / désactivation ne doit pas être prise à la légère et doit être soigneusement testée. Je recommanderais de réduire les demandes, de réduire les actifs avant même d'envisager un CDN - mal configuré, ils peuvent facilement rendre les magasins plus lents que plus rapides.
Ben Lessani - Sonassi

Comment définir ce système local de réglage de keepalive pour le serveur XAMPP?
bhavin thummar
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.