Outils de test de charge
- ab :
Exemple de charge avec 500 clients concurrents, qui vont lancer une charge de 50000 requêtes au total.
ab -c 500 -n 50000 "https://mon_serveur/page.html"
- siege
Siege à la différence d’ab lance un maximum de requêtes avec les clients concurrents dont il dispose sur une durée définie lorsque l’option -t est utilisiée. Si l’on utilise l’option -r, cela définit le nombre de requête par client
Dans cet exemple, lancement de 500 clients concurrents qui vont charger 5 fois, on aura 2500 requêtes lancées au total.
siege "https://mon_serveur/script.php" -c 500 -r 5
nb : attention l’option -t prévaut sur l’option -r.
- jmeter
Avec jmeter, on commence à entrer dans le domaine du test fonctionnel car on peut créer des scénarios et autres. Il est un peu gros pour simplement tester des temps de réponses sur une requête.
- gatling
Comme jmeter, mais une équipe française derrière.
Superviser le serveur ciblé
Les outils en ligne de commande
- top : cpu, mémoire…
- nmon : cpu, mémoire… (plus « visuel » que top)
- lsof : les descripteurs de fichier
- netstat : les sockets
- df : espace disque général
- du : espace disque par fichier
- free : utilisation de la mémoire
- mount -l : point de montage
- sar : cpu, mémoire (package sysstat)
- pidstat : process (package sysstat)
- cat /proc/… : lecture des variables kernel en direct, le plus efficace pour comprendre d’où viennent les limites ou les valeurs par défaut
- ulimit : visualisation des limites
- sysctl -a : visualisation des variables kernel (plus rapide que /proc et en lien avec systemd)
- monit : supervision générale avec affichage
Outils pour avoir des graphes
- nagios : un classique (grosse artillerie mais efficace)
- munin : le top pour faire des graphes (commence aussi à devenir une grosse artillerie)
- m/monit : une couche http au dessus de monit (plus simple que les deux précédents mais sous licence payante)