Output format : 3 formats de sortie existent : - le format de base, utilisé pour suivre une injection du coin de l'oeil quand on n'a pas besoin d'enregistrer. C'est un peu comme vmstat. - un format plus large permettant de grapher les valeurs et qui contient le nombre de clients simultanés ainsi que des infos de temps. - le même format avec l'heure système absolue, qui facilite la corrélation des traces de plusieurs injecteurs. Les champs sont toujours séparés par un ou plusieurs espaces. Ce qui compte pour relire la sortie n'est pas la position en nombre de caractères, mais la position en nombre de colonnes (correspondant aux $1..$N de awk). Le format utilisé dans fprintf() pour les afficher sera donné à chaque fois. Tous les champs sont des entiers 32 bits sauf indication contraire. Les champs communs sont : - "delta" : c'est le temps en millisecondes écoulé depuis la mesure précédente (temps réellement mesuré, normalement proche de l'intervalle programmé). C'est aussi le temps qui sert de référence pour les mesures de débit ou de hits/s. - "clients" : c'est le nombre total cumulé d'utilisateurs ayant fini de dérouler leur scénario depuis le début du test. - "hits" : nombre total de hits effectué depuis le lancement du test. Cas particulier: on peut avoir "-1" tant que le test n'a pas pu démarrer (ex: connexion refused, etc...) - "^hits" : nombre de hits effectués depuis la mesure précédente. C'est exactement la différence entre la valeur courante et la valeur précédente de la colonne "hits". - "hits/s" : nombre moyen de hits par seconde depuis le début du test. C'est le nombre de hits divisé par le temps écoulé depuis le début. - "^h/s" : nombre de hits/s depuis la dernière mesure. C'est en fait "^hits" divisé par le temps écoulé entre les deux mesures (tenant compte des éventuelles dérives). Ce n'est pas toujours exactement égal à "^hits" quand l'intervalle de mesure est d'une seconde car il arrive qu'à forte charge, le déclenchement des mesures varie de quelques millisecondes (précision du timer système = 10ms). Ce temps est pris en compte dans la mesure. - "bytes" : nombre total d'octets lus depuis le début du test, incluant les headers HTTP. ATTENTION : c'est un entier 64 bits. - "^bytes" : nombre d'octets lus depuis la dernière mesure, incluant les headers HTTP. ATTENTION : c'est un entier 64 bits. - "kB/s" : nombre de kilo-octets transférés depuis le début du test divisé par le temps écoulé depuis le début du test. C'est le débit moyen sur la durée du test. ATTENTION: ici le "kilo" vaut 1000. En fait c'est le nombre d'octets divisé par le nombre de millisecondes. - "last" : débit réseau moyen au cours de la dernière mesure. C'est le nombre d'octets transférés divisé par le temps ayant séparé les deux mesures. - "errs" : nombre cumulé d'erreurs de connexion ou de codes d'erreurs HTTP ne permettant pas de poursuivre le test, depuis le début du test. - "tout" : nombre cumulé d'erreurs de type time-out depuis le début du test. - "htime" : temps moyen d'un hit complet mesuré sur l'ensemble des hits terminés depuis la dernière mesure. Ce temps est en millisecondes, et représenté avec une décimale (précision de 100 µs). - "sdht" : écart-type ("standard deviation") sur le temps de hits mesuré sur les hits terminés depuis la dernière mesure. Ce temps est en millisecondes, et représenté avec une décimale (précision de 100 µs). - "ptime" : temps moyen de chargement d'une page complète (tous les objets) mesuré sur l'ensemble des pages terminées depuis la dernière mesure. Ce temps est en millisecondes, et représenté avec une décimale (précision de 100 µs). - "nbcli" : nombre d'utilisateurs simultanés, ou nombre de scénarios en cours d'exécution. Cela comprend aussi bien les utilisateurs en attente d'une page que les utilisateurs en attente d'écoulement du "think time". En fin d'injection, un résumé succint des tests est fourni. Voir plus loin pour la description. 1) format de base, sans paramètre C'est le format qu'on utilise pour surveiller l'injection en temps réel sur l'écran, mais pas pour capturer des données. La ligne de titre est répétée toutes les 16 lignes. Seules des infos de perfs sont affichées, on n'a pas le temps écoulé ni le nombre de clients. Le format est donné ici pour référence, mais il ne faut pas l'utiliser pour récupérer des logs. # ./inject21 -r -t 1000 -f scn1 -o 4 -u 1 hits ^hits hits/s ^h/s bytes kB/s last errs tout htime sdht ptime 1318 1318 1321 1318 2464440 2471 2464 0 0 2.0 1.9 3.8 2634 1316 1317 1312 4919545 2459 2447 0 0 2.4 1.6 4.1 3949 1315 1316 1315 7374650 2458 2455 0 0 2.4 1.6 4.1 2) avec le paramètre "-l" Ce format est plus large que le précédent. Il contient le temps écoulé depuis le début du test, en millisecondes. Ce format est adapté à des tests évolués nécessitant de pouvoir grapher les résultats. La ligne de titre n'est affichée qu'une fois au début et jamais ensuite. Les lignes de statut en fin de test sont toutefois affichées. # ./inject21 -r -t 1000 -f scn1 -l -o 4 -u 1 time delta clients hits ^hits hits/s ^h/s bytes ^bytes kB/s last errs tout htime sdht ptime nbcli 999 1001 104 1236 1236 1237 1234 2307612 2307612 2309 2305 0 0 2.0 2.0 4.1 1 2000 1001 211 2528 1292 1264 1290 4723510 2415898 2361 2413 0 0 2.4 1.7 4.2 1 3000 1000 324 3876 1348 1292 1348 7238359 2514849 2412 2514 0 0 2.3 1.6 4.2 1 4000 1000 434 5204 1328 1301 1328 9717735 2479376 2429 2479 0 0 2.4 1.5 4.2 1 5000 1000 546 6541 1337 1308 1337 12213914 2496179 2442 2496 0 0 2.4 1.6 4.2 1 Fin. 3) avec paramètres "-l" et "-a" Ce format est le même que le précédent, à la différence près que le champ "time" donne l'heure unix en secondes (le nombre de secondes écoulées depuis le 01/01/1970). Ce format est plus particulièrement adapté à des mesures distribuées car il permet de synthétiser des mesures prises entre plusieurs points. # ./inject21 -r -t 1000 -f scn1 -l -o 4 -u 1 -a time delta clients hits ^hits hits/s ^h/s bytes ^bytes kB/s last errs tout htime sdht ptime nbcli 1106908663 1000 85 1015 1015 1273 1015 1896872 1896872 2380 1896 0 0 2.9 13.8 5.2 1 1106908664 1204 218 2615 1600 1307 1328 4884072 2987200 2442 2481 0 0 2.3 1.5 4.2 1 1106908665 1000 328 3931 1316 1310 1316 7342911 2458839 2447 2458 0 0 2.4 1.5 4.2 1 1106908666 1000 441 5282 1351 1320 1351 9865228 2522317 2466 2522 0 0 2.4 1.5 4.1 1 1106908667 1000 554 6636 1354 1327 1354 12389412 2524184 2477 2524 0 0 2.4 1.6 4.2 1 1106908668 1000 662 7935 1299 1322 1299 14816512 2427100 2469 2427 0 0 2.4 1.6 4.2 1 1106908669 1000 773 9271 1336 1324 1336 17310824 2494312 2472 2494 0 0 2.4 1.5 4.2 1 4) compte-rendu de test. Les informations suivantes sont fournies en fin de test. Le nombre de clients est le dernier de la colonne "clients". Le nombre de hits est le total de la colonne "hits", suivi du nombre de hits abortés à cause d'une erreur au cours de l'exécution d'un scénario. Par exemple, si une requête aboutit à une erreur, le scénario est aborté, et les requêtes en cours sont annulées. Il est toujours intéressant de savoir combien il y en avait lorsqu'on compare les logs d'un firewall avec les résultats des tests. La ligne "débit" est la dernière valeur de la colonne "kB/s", et la ligne "Réponse" est la dernière valeur de la colonne "kB/s". Fin. Clients : 773 Hits : 9271 + 0 abortés Octets : 17310824 Duree : 7362 ms Debit : 2351 kB/s Reponse : 1259 hits/s Erreurs : 0 Timeouts: 0 Temps moyen de hit: 2.4 ms Temps moyen d'une page complete: 4.2 ms Date de demarrage: 1106908661 (28 Jan 2005 - 11:37:41) Ligne de commande : ./inject21 -r -t 1000 -f scn1 -l -o 4 -u 1 -a