La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :

La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :

Nous avons parlĂ© de la mĂ©thode dans de la premiĂšre partie l'article, ici nous testons HTTPS, mais dans des scĂ©narios plus rĂ©alistes. Pour ce test, nous avons obtenu un certificat Let’s Encrypt, et activĂ© la compression Brotli Ă  11.

Cette fois, nous allons essayer de reproduire un scénario de déploiement de serveur sur VDS ou en tant que machine virtuelle sur un hÎte avec un processeur standard. Pour cela, nous avons imposé une limite de :

  • 25% — ce qui Ă©quivaut Ă  une frĂ©quence d'environ 1350 MHz
  • 35% -1890 MHz
  • 41% — 2214 MHz
  • 65% — 3510 MHz

Le nombre de connexions simultanées a été réduit de 500 à 1, 3, 5, 7 et 9,

Résultats :

Lattences :

Le TTFB a Ă©tĂ© spĂ©cifiquement extrait comme test sĂ©parĂ©, car HTTPD Tools crĂ©e une sorte de nouvel utilisateur pour chaque requĂȘte distincte. Ce test est encore assez dĂ©connectĂ© de la rĂ©alitĂ©, car un utilisateur cliquera toujours sur quelques pages, et dans la rĂ©alitĂ©, le TTFP jouera le rĂŽle principal.

La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
La premiĂšre, la toute premiĂšre requĂȘte aprĂšs le premier dĂ©marrage de la machine virtuelle IIS s'exĂ©cute en moyenne en 120 ms.

La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
Toutes les requĂȘtes suivantes montrent un TTFP de 1,5 ms. Apache et Nginx sont Ă  la traĂźne dans ce domaine. L'auteur pense personnellement que ce test est le plus rĂ©vĂ©lateur et choisirait un vainqueur uniquement sur cette base.
Le résultat n'est pas surprenant, car IIS met en cache le contenu statique déjà compressé et ne le recomprime pas à chaque fois qu'il est sollicité.

Temps consacré à un client

Pour évaluer la performance, un test avec 1 connexion simultanée est suffisant.
Par exemple, IIS a terminĂ© le test de 5000 utilisateurs en 40 secondes, soit 123 requĂȘtes par seconde.

Dans les graphiques ci-dessous, nous montrons le temps jusqu'Ă  la transmission complĂšte du contenu du site. C'est la proportion de requĂȘtes effectuĂ©es dans un temps donnĂ©. Dans notre cas, 80% de toutes les requĂȘtes ont Ă©tĂ© traitĂ©es en 8 ms sur IIS et en 4,5 ms sur Apache et Nginx, tandis que l'intervalle jusqu'Ă  8 millisecondes a traitĂ© 98% de toutes les requĂȘtes sur Apache et Nginx.

La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
Temps nĂ©cessaire pour traiter 5000 requĂȘtes :

La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
Temps nĂ©cessaire pour traiter 5000 requĂȘtes :

La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
Si vous avez une machine virtuelle avec un CPU de 3,5 GHz et 8 cƓurs, choisissez ce que vous voulez. Tous les serveurs web sont trùs similaires dans ce test. Nous parlerons ci-dessous de quel serveur web choisir pour chaque hîte.

Quand il s'agit d'une situation un peu plus réaliste, tous les serveurs web sont au coude à coude.

Débit :

Graphique des latences en fonction du nombre de connexions simultanées. Plus la courbe est plate et basse, mieux c'est. Les 2 % les plus récents ont été écartés des graphiques car ils les rendraient illisibles.

La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
ConsidĂ©rons maintenant le cas oĂč le serveur est hĂ©bergĂ© sur un hĂ©bergement virtuel. Prenons 4 cƓurs Ă  2,2 GHz et un cƓur Ă  1,8 GHz.

La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :

Comment se dimensionnent

Si vous avez dĂ©jĂ  vu Ă  quoi ressemblent les caractĂ©ristiques des triodes et pentodes Ă©lectrovaccinants, ces graphiques vous seront familiers. C'est prĂ©cisĂ©ment ce que nous essayons de capturer : la saturation. Le point oĂč, peu importe combien de cƓurs vous ajoutez, l'augmentation des performances ne sera pas perceptible.

Auparavant, tout le dĂ©fi consistait Ă  traiter 98 % des requĂȘtes avec le moindre dĂ©lai possible pour maintenir une courbe aussi lisse que possible. Maintenant, grĂące Ă  une autre courbe, nous allons trouver le point de fonctionnement optimal pour chacun des serveurs.

Pour cela, nous allons utiliser l'indicateur des requĂȘtes par seconde (RPR). Sur l'axe horizontal, la frĂ©quence, sur l'axe vertical — le nombre de requĂȘtes traitĂ©es par seconde, les lignes — le nombre de cƓurs.

La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
La corrĂ©lation dans la maniĂšre dont Nginx traite les requĂȘtes une aprĂšs l'autre est montrĂ©e. 8 cƓurs se montrent meilleurs dans ce test.

La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
Ce graphique montre bien combien Nginx fonctionne mieux (pas de beaucoup) sur un seul cƓur. Si vous utilisez Nginx, il peut ĂȘtre judicieux de rĂ©duire le nombre de cƓurs Ă  un si vous n'hĂ©bergez que des fichiers statiques.

La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
Bien que IIS ait le TTFB le plus bas selon DevTools dans Chrome, il parvient à perdre face à Nginx et Apache dans un test de stress sérieux de l'Apache Foundation.

La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :
La courbure des graphiques est reproduite Ă  la perfection.

En résumé :

Oui, Apache fonctionne indĂ©niablement moins bien sur 1 et 8 cƓurs, alors qu'il obtient de meilleures performances sur 4 cƓurs.

Oui, Nginx gĂšre mieux les requĂȘtes une aprĂšs l'autre avec 8 cƓurs, mais il fonctionne moins bien avec 1 et 4 cƓurs quand il y a beaucoup de connexions.

Oui, IIS prĂ©fĂšre 4 cƓurs pour les charges multithread et 8 cƓurs pour le monothread. En fin de compte, IIS s'est avĂ©rĂ© lĂ©gĂšrement plus rapide que les autres avec 8 cƓurs sous une charge Ă©levĂ©e, bien que tous les serveurs soient restĂ©s au mĂȘme niveau.

Ce n'est pas une erreur de mesure, la marge d'erreur ici est de ±1 ms. pour les latences et de ±2-3 requĂȘtes par seconde pour le RPR.

Les rĂ©sultats lorsqu'il y a 8 cƓurs qui se comportent moins bien ne sont pas surprenants ; de nombreux cƓurs et SMT/Hyperthreading dĂ©gradent fortement les performances si nous avons un dĂ©lai Ă  respecter pour terminer l'ensemble du pipeline.

La bataille des serveurs WEB. Partie 2 – un scĂ©nario rĂ©aliste pour HTTPS :

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster