Domanda

Per fare qualche test di carico, per mia curiosità, sul mio server ho eseguito:

ab -kc 50 -t 200 http://localhost/index.php

Questo apre 50 connessioni keep-alive per 200 secondi e blocca il mio server con richieste di index.php

Nei miei risultati, ottengo:

Concurrency Level:      50
Time taken for tests:   200.007 seconds
Complete requests:      33106
Failed requests:        32951
   (Connect: 0, Receive: 0, Length: 32951, Exceptions: 0)
Write errors:           0
Keep-Alive requests:    0
Total transferred:      1948268960 bytes
HTML transferred:       1938001392 bytes
Requests per second:    165.52 [#/sec] (mean)
Time per request:       302.071 [ms] (mean)
Time per request:       6.041 [ms] (mean, across all concurrent requests)
Transfer rate:          9512.69 [Kbytes/sec] received

Nota le 32951 richieste "non riuscite".Non riesco a capirlo.

Mentre il test era in corso, sono riuscito ad accedere perfettamente al mio sito web dal computer di casa, anche se i tempi di caricamento della pagina nella parte inferiore della pagina sono stati riportati come .5 invece del solito .02.Tuttavia non ho mai ricevuto una richiesta non riuscita.

Allora perché AB segnala che metà delle connessioni non funzionano?E cosa significa "Lunghezza:" intendi in quel contesto?

Grazie

È stato utile?

Soluzione

Non importa.Il "fallimento della lunghezza" indica semplicemente che circa la metà delle volte la lunghezza della risposta era diversa.

Poiché i contenuti sono dinamici, probabilmente è l'identificatore di sessione o qualcosa del genere.

Altri suggerimenti

Per descrivere il problema in altre parole:

Lo strumento di benchmarking di Apache (ab) presuppone che la lunghezza del contenuto della risposta sarà la stessa durante l'intero test.Memorizza la lunghezza del contenuto della prima risposta.Se una qualsiasi delle ulteriori risposte ha una lunghezza del contenuto diversa, si verificheranno "errori di lunghezza".

La seguente segnalazione di bug di Apache sembra confermare che: Bug ASF 42040

Riepilogo:Se stai offrendo contenuti di lunghezza variabile, probabilmente dovresti ignorare questo tipo di errori di richiesta ab.

Modificare:Recentemente ho notato che il ab il comando ha una nuova opzione (almeno per me):

-l   Accept variable document length (use this for dynamic pages)

Posso vederlo dentro ab Versione 2.3 <$Revisione:1528965$> ma non riesco a vederlo ab Versione 2.3 <$Revisione:655654$>, quindi probabilmente è stato aggiunto relativamente di recente.

Mi dispiace resuscitare una vecchia domanda, ma è stata la prima che è apparsa su Google.A volte l'errore di lunghezza segnalato da ab potrebbe essere stato causato da un problema reale:se la connessione viene chiusa lato server prima che la quantità totale di byte dichiarati nell'intestazione Content-Length non sia stata ricevuta dal client.Ciò può accadere se ci sono altre parti tra il client e il server, ad esempio, ingenui bilanciatori di carico realizzati a mano (il mio caso).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top