
Nous avons parlĂ© de la mĂ©thode dans 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 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.

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.

Temps nĂ©cessaire pour traiter 5000 requĂȘtes :


Temps nĂ©cessaire pour traiter 5000 requĂȘtes :

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.



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.






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 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.

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.



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 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.
Source : habr.com
