39 votes

Outils pour tester la charge des serveurs HTTP ?

J'ai eu à tester la charge de serveurs HTTP et d'applications Web à quelques reprises, et à chaque fois j'ai été déçu par la qualité des outils que j'ai pu trouver.

Alors, quand vous testez la charge d'un serveur HTTP, quels outils utilisez-vous ? Et quelles sont les erreurs que je risque le plus de commettre la prochaine fois que je devrai le faire ?

24voto

Tokabi Points 840

JMeter est gratuit.

Mercury Interactive Load Runner est super sympa et super cher.

0 votes

J'aime bien JMeter. Parce que vous pouvez l'utiliser pour mettre en place des tests de charge de sites complets et expansifs, ou vous pouvez passer 5 minutes à mettre en place un test pour une fonction particulière. L'interface est bonne aussi, avec beaucoup d'options.

21voto

Chris Roberts Points 7543

Je me sens exceptionnellement qualifié pour répondre à cette question, car ma société actuelle doit simuler 25 000 connexions simultanées à nos serveurs Web (nous diffusons des publicités en ligne).

Pour les tests de charge à très haut volume, Httperf est la voie à suivre. Il est gratuit et, d'après notre expérience, il peut simuler plus de connexions simultanées que JMeter ou STA sur le même matériel.

Edit :

Au cas où vous seriez curieux, nous simulons 3500 requêtes par seconde sur un Optiplex 330 à faible puissance, bon marché et de très petite taille. Ces petites boîtes ne coûtent que 280 $, et nous en avons plusieurs connectées pour exécuter Httperf à la demande. En comparaison, JMeter ne pouvait pousser qu'environ 800-900 req/sec sur ce matériel.

20voto

Darren Kopp Points 27704

Si vous souhaitez simplement charger une seule URL à la fois sur un serveur web, téléchargez Apache AB. Il est fourni avec le serveur HTTP Apache.

Commande simple

ab -n 10000 -c 10 http://serverfault.com/questions/2107/tools-for-load-testing-http-servers

exécuterait 10000 requêtes avec une concurrence de 10 utilisateurs.

Si vous voulez enregistrer des sessions de navigation, allez upvote et acceptez la réponse de jmeter. Jmeter est étonnant et il peut s'adapter à de nombreuses machines de test qui peuvent lancer une charge énorme.

2 votes

Gardez à l'esprit que le -n d'ab est le nombre de réponses reçues avant qu'il n'arrête d'envoyer des requêtes. Lorsque vous augmentez la concurrence, les threads continuent à envoyer des requêtes avant que les réponses ne soient comptées. L'exemple ci-dessus enverrait en fait environ 10005 requêtes. JMeter ne souffre pas de ce problème.

0 votes

ab fonctionne en mode monofil et utilise select pour passer par des connexions. Cela signifie que, de temps à autre, il cessera d'envoyer des charges pendant qu'il collecte les connexions fermées. Vous le remarquerez si vous dépassez les 16000 requêtes, ce qui est nécessaire si vous augmentez la concurrence au-delà de 500.

8voto

Matt Blaine Points 2270

Il y a Tsung un outil basé sur Erlang.

Il existe également une longue liste d'outils à l'adresse suivante http://www.softwareqatest.com/qatweb1.html#LOAD

6voto

Ian Varley Points 5623

Pour un test rapide, vous pouvez utiliser des séquences de boucles et des séries d'URL. Par exemple, si nous voulons effectuer un test de charge contre Google, nous pouvons lancer...

curl -s "http://google.com?[1-1000]"

Cela fera 1000 appels à google, c'est à dire.

http://google.com?1  
http://google.com?2  
http://google.com?3 
... 
http://google.com?1000

Ce sujet est abordé plus en détail à l'adresse suivante Comment tester rapidement un serveur web avec curl.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X