2010-05-12 11 views
34

Quand je lance banc apache j'obtenir des résultats tels que:Définition de Connect, traitement, attente dans banc apache

Command: abs.exe -v 3 -n 10 -c 1 https://mysite 
Connection Times (ms) 
       min mean[+/-sd] median max 
Connect:  203 213 8.1 219  219 
Processing: 78 177 88.1 172  359 
Waiting:  78 169 84.6 156  344 
Total:  281 389 86.7 391  564 

Je ne peux pas sembler trouver la définition de Connect, traitement et attente. Que signifient ces chiffres?

Répondre

28

De http://chestofbooks.com/computers/webservers/apache/Stas-Bekman/Practical-mod_perl/9-1-1-ApacheBench.html:

Connect et les temps d'attente

La quantité de temps qu'il a fallu pour établir la connexion et obtenir les premiers bits d'une réponse

temps de traitement

Le temps de réponse du serveur, Le temps qu'il a fallu pour le serveur pour traiter la demande et envoyer une réponse

Temps total

La somme des temps Connect et traitement

Je compare cela à:

  • Temps de connexion: temps nécessaire à l'ouverture du socket
  • Délai de traitement: premier octet + tr ansfert
  • attente: temps jusqu'à ce premier octet
  • Total: Somme des Connect + Traitement
+0

Je pense que le temps de traitement comprend le temps d'attente, sinon le temps total serait connecter + attente + traitement. – phsiao

2

Connect: Le temps qu'il faut pour se connecter à un hôte distant

Traitement: Temps total moins le temps qu'il faut pour se connecter à l'hôte distant

attente: Réponse premier octet reçu moins dernier octet envoyé

total: de avant se connecter jusqu'après la connectio n est fermé

+0

Plus de réponses détaillées http://stackoverflow.com/a/8529862/474597 – lulalala

13

En regardant le code source, nous trouvons ces points de synchronisation:

apr_time_t start,   /* Start of connection */ 
      connect,   /* Connected, start writing */ 
      endwrite,  /* Request written */ 
      beginread,  /* First byte of input */ 
      done;   /* Connection closed */ 

Et quand la demande est faite des timings sont stockées sous forme de:

 s->starttime = c->start; 
     s->ctime  = ap_max(0, c->connect - c->start); 
     s->time  = ap_max(0, c->done - c->start); 
     s->waittime = ap_max(0, c->beginread - c->endwrite); 

Et le 'temps de traitement' est calculée plus tard comme

s->time - s->ctime; 

donc, si nous traduisons à un calendrier:

t1: Start of connection 
t2: Connected, start writing 
t3: Request written 
t4: First byte of input 
t5: Connection closed 

Ensuite, les définitions seraient:

Connect:  t1-t2 Most typically the network latency 
Processing: t2-t5 Time to receive full response after connection was opened 
Waiting:  t3-t4 Time-to-first-byte after the request was sent 
Total time: t1-t5 
+0

Chute impressionnante, merci! –

+0

Meilleure réponse ici. Je vous remercie! – gunit