ab - L'outil de test des performances du serveur HTTP
Apache
ab
est un utilitaire qui vous permet de tester les
performances de votre serveur HTTP Apache. Il a �t� con�u pour vous
donner une id�e du degr� de performances de votre installation
d'Apache. Il vous permet en particulier de d�terminer le nombre de
r�qu�tes que votre installation d'Apache est capable de servir par
seconde.
ab
[ -A nom-utilisateur:mot-de-passe ]
[ -b taille-tampon ]
[ -B adresse-locale ]
[ -c simultan�it� ]
[ -C nom-cookie=valeur ]
[ -d ]
[ -e fichier-csv ]
[ -f protocole ]
[ -g fichier-gnuplot ]
[ -h ]
[ -H en-t�te-personnalis� ]
[ -i ]
[ -k ]
[ -l ]
[ -m HTTP-method ]
[ -n requ�tes ]
[ -p fichier-POST ]
[ -P
nom-utilisateur-mandataire:mot-de-passe ]
[ -q ]
[ -r ]
[ -s timeout ]
[ -S ]
[ -t limite-de-dur�e ]
[ -T type-de-contenu ]
[ -u fichier PUT ]
[ -v verbosit�]
[ -V ]
[ -w ]
[ -x <table>-attributs ]
[ -X mandataire[:port] ]
[ -y <tr>-attributs ]
[ -z <td>-attributs ]
[ -Z algorithme-chiffrement ]
[http[s]://]nom-serveur[:port]/chemin
![top](../../images/up.gif)
-A nom-utilisateur:mot-de-passe
- Fournit le support d'une authentification de base vers le
serveur. Les nom-utilisateur et mot-de-passe sont s�par�s par un
seul caract�re
:
et transmis sous forme cod�e base64.
La cha�ne est envoy�e que le serveur en ait besoin ou non (qu'il ait
renvoy� un code "401 authentication needed" ou non).
-b taille-tampon
- Taille du tampon d'�mission/r�ception TCP, en octets.
-B adresse-locale
- Adresse � laquelle se rattacher lors des connexions sortantes.
-c simultan�it�
- Nombre de requ�tes � effectuer simultan�ment. Par d�faut, une
seule requ�te est effectu�e � la fois.
-C nom-cookie=valeur
- Ajoute une ligne
Cookie:
� la requ�te. L'argument
se pr�sente en g�n�ral sous la forme d'une
paire nom=valeur
. Ce champ peut
�tre r�p�t�.
-d
- N'affiche pas le "pourcentage servi dans la table XX [ms]".
(support de l'h�ritage).
-e fichier-csv
- Enregistre des valeurs s�par�es par des virgules (CSV) dans un
fichier, indiquant pour chaque pourcentage (de 1% � 100 %), le temps
(en millisecondes) mis pour servir ce pourcentage de requ�tes. Ce
fichier est en g�n�ral plus utile qu'un fichier 'gnuplot', car les
r�sultats sont d�j� sous forme binaire.
-f protocole
- Sp�cifie le protocole SSL/TLS (SSL2, SSL3, TLS1, TLS1.1, TLS1.2, or ALL).
TLS1.1 et TLS1.2 sont support�s � partir de la version 2.4.4 du
serveur HTTP Apache.
-g fichier-gnuplot
- Enregistre toutes les valeurs mesur�es dans un fichier 'gnuplot'
ou TSV (valeurs s�par�es par des tabulations). Ce fichier peut �tre
facilement import� dans des programmes comme Gnuplot, IDL,
Mathematica, Igor ou m�me Excel. La premi�re ligne du fichier
contient les noms des valeurs.
-h
- Affiche une aide � propos de l'utilisation du programme.
-H en-t�te-personnalis�
- Ajoute des en-t�tes suppl�mentaires � la requ�te. L'argument se
pr�sente sous la forme d'une ligne d'en-t�te valide, autrement dit
une paire champ/valeur s�par�s par un caract�re ':' (par exemple
"Accept-Encoding: zip/zop;8bit"
).
-i
- Effectue des requ�tes
HEAD
plut�t que
GET
.
-k
- Active la fonctionnalit� des connexions HTTP persistantes
(KeepAlive), c'est � dire effectue plusieurs requ�tes au cours d'une
seule session HTTP. Cette fonctionnalit� est d�sactiv�e par
d�faut.
-l
- Ne signale pas les erreurs si la taille de la r�ponse n'est pas
constante. Cette option peut s'av�rer utile pour les pages
dynamiques. Disponible � partir de la version 2.4.7 du serveur HTTP
Apache.
-m HTTP-method
- M�thode HTTP personnalis�e � utiliser pour les requ�tes.
Disponible � partir de la version 2.4.10 du serveur HTTP
Apache.
-n requ�tes
- Nombre de requ�tes � effectuer au cours du test de performances.
Par d�faut, une seule requ�te est effectu�e, ce qui ne permet pas
d'obtenir des r�sultats repr�sentatifs.
-p fichier-POST
- Fichier contenant les donn�es pour les requ�tes POST.
Assurez-vous de sp�cifier aussi le param�tre
-T
.
-P nom-utilisateur-mandataire:mot-de-passe
- Fournit les informations d'authentification basique pour un
mandataire en-route. Les nom d'utilisateur et mot de passe sont
s�par�s par un simple caract�re
:
et envoy�s sur le
r�seau cod�s en base64. La cha�ne est envoy�e, que le mandataire en
ait besoin ou non (qu'il ait renvoy� un code "407 proxy
authentication needed" ou non).
-q
- Lorsque plus de 150 requ�tes sont trait�es,
ab
affiche la progression du traitement sur stderr
tous
les 10% du nombre total ou toutes les 100 requ�tes. Le drapeau
-q
permet de supprimer ces messages.
-r
- Ne s'arr�te pas en cas d'erreur de r�ception du socket.
-s timeout
- Temps maximum d'attente en secondes du socket avant de consid�rer
le d�lai comme d�pass�. La valeur par d�faut est de 30 secondes.
Disponible � partir de la version 2.4.4 du serveur HTTP
Apache.
-S
- N'affiche ni les valeurs de d�viation standards et m�dianes, ni
les messages d'erreur et d'avertissement lorsque les valeurs
m�dianes et moyennes sont �gales � une ou deux fois la valeur de
d�viation standard. Par d�faut les valeurs mini/moyenne/maxi sont
affich�es (support de l'h�ritage).
-t limite-dur�e
- Dur�e maximale en secondes du test de performances. Ceci
implique un
-n 50000
en interne. Utilisez cette option
si vous souhaitez tester les performances du serveur pendant une
dur�e fix�e � l'avance. Par d�faut, il n'y a pas de limite de
dur�e.
-T type-contenu
- Valeur de l'en-t�te Content-type � utiliser pour les donn�es
POST/PUT, par exemple
application/x-www-form-urlencoded
.
La valeur par d�faut est text/plain
.
-u fichier PUT
- Fichier contenant des donn�es PUT. Ne pas oublier de sp�cifier
aussi
-T
.
-v verbosit�
- D�finit le niveau de verbosit� - les niveaux
4
et
sup�rieurs permettent d'afficher des informations � propos des
en-t�tes, les niveaux 3
et sup�rieurs les codes de
r�ponse (404, 200, etc...), et les niveaux 2
et
sup�rieurs les messages d'avertissement et d'information.
-V
- Affiche le num�ro de version et s'arr�te.
-w
- Affiche les r�sultats dans des tables HTML. La table par d�faut
comporte deux colonnes sur fond blanc.
-x <table>-attributs
- La cha�ne � utiliser comme attributs pour
<table>
. Les attributs sont ins�r�s
<table ici >
.
-X mandataire[:port]
- Utilise un serveur mandataire pour les requ�tes.
-y <tr>-attributs
- La cha�ne � utiliser comme attributs pour
<tr>
.
-z <td>-attributs
- La cha�ne � utiliser comme attributs pour
<td>
.
-Z algorithme-chiffrement
- Sp�cifie l'algorithme de chiffrement SSL/TLS (Voir les
algorithme de chiffrement openssl).
![top](../../images/up.gif)
Vous touverez dans ce qui suit la liste des valeurs retourn�es
par ab
:
- Server Software
- La valeur, si elle existe, de l'en-t�te HTTP
server renvoy�e dans la premi�re r�ponse r�ussie.
Elle comporte tous les caract�res de l'en-t�te jusqu'� ce qu'un
caract�re de valeur d�cimale 32 soit rencontr� (le plus souvent
un espace ou une fin de ligne).
- Server Hostname
- Le nom DNS ou l'adresse IP fourni dans la ligne de commande.
- Server Port
- Le port auquel ab est connect�. Si la ligne de commande ne
sp�cifie aucun port, le port par d�faut sera 80 pour http et 443
pour https.
- SSL/TLS Protocol
- Les param�tres de protocole n�goci�s entre le client et le
serveur. Uniquement si SSL est utilis�.
- Document Path
- L'URI de la requ�te interpr�t� � partir de la cha�ne de la
ligne de commande.
- Document Length
- Il s'agit de la taille en octets du premier document renvoy�
avec succ�s. Si la taille du document est modifi�e au cours
du test, la r�ponse est consid�r�e comme une erreur.
- Concurrency Level
- Le nombre de clients simultan�s utilis�s au cours du test.
- Time taken for tests
- Il s'agit du temps �coul� entre le moment de la premi�re
connexion au socket et la r�ception de la derni�re
r�ponse.
- Complete requests
- Le nombre de r�ponses re�ues avec succ�s.
- Failed requests
- Le nombre de requ�tes consid�r�es comme erron�es. Si ce
nombre est diff�rent de 0, une ligne suppl�mentaire indiquera le
nombre de requ�tes ayant �chou� suite � un probl�me de
connexion, de lecture, de taille de contenu erron�e ou
d'exceptions.
- Write errors
- Le nombre d'erreurs rencontr�es en cours d'�criture (broken pipe).
- Non-2xx responses
- Le nombre de r�ponses dont le code �tait en dehors de la
s�rie 200. Si toutes les r�ponses appartiennent � la s�rie 200,
cette ligne est absente.
- Keep-Alive requests
- Le nombre de connexions promues � l'�tat de connexions
persistantes.
- Total body sent
- Si le test a �t� configur� dans ce sens, il s'agit du nombre
total d'octets envoy�s au cours du test. Ce champ est omis si le
test ne pr�voyait pas d'envoi de corps.
- Total transferred
- Le nombre total d'octets re�us du serveur. Ce nombre
correspond � peu pr�s au nombre d'octets envoy�s sur la ligne.
- HTML transferred
- Le nombre total d'octets utiles (contenus) re�us du serveur.
Ce nombre n'inclut pas les octets correspondant aux en-t�tes
HTTP.
- Requests per second
- Il s'agit du nombre de requ�tes par seconde. Il correspond
au nombre de requ�tes divis� par la dur�e totale du traitement.
- Time per request
- La dur�e moyenne du traitement d'une requ�te. La premi�re
valeur est calcul�e selon la formule
concurrency *
timetaken * 1000 / done
, alors que la seconde valeur est
calcul�e selon la formule timetaken * 1000 / done
.
- Transfer rate
- Le taux de transfert calcul� selon la formule
totalread / 1024 / timetaken
.
![top](../../images/up.gif)
De nombreux tampons de taille fixe sont d�clar�s statiquement.
Combin� avec l'interpr�tation poussive des arguments de la ligne de
commande, les en-t�tes de r�ponse du serveur et autres entr�es
externes, ceci peut vous affecter.
HTTP/1.x n'est pas compl�tement impl�ment� ; seules certaines
formes de r�ponses 'attendues' sont accept�es. L'utilisation
relativement intense de strstr(3)
provoque un affichage
en t�te de profil, ce qui peut faire croire � un probl�me de
performances ; en d'autres termes, vous mesurez les performances de
ab
plut�t que celles du serveur.