Ho iniziato a scrivere alcuni test di base in JMeter e sono rimasto sorpreso dal fatto che le misurazioni siano così diverse da quelle di Apache ab.Quali sono le giuste misure, JMeter o Apache ab?
Ho una LAN gigabit che collega un server Intel i7 con Nginx e una macchina di prova i5 con JMeter o ab. Inizialmente, sto semplicemente testando l'out-of-the-box del tasso di risposta della home page Nginx.
ab -c 1 -n 100 http://testserver.local/
dà
Document Path: /
Document Length: 151 bytes
Concurrency Level: 1
Time taken for tests: 0.078 seconds
Complete requests: 100
Failed requests: 0
Write errors: 0
Total transferred: 38400 bytes
HTML transferred: 15100 bytes
Requests per second: 1280.77 [#/sec] (mean)
Time per request: 0.781 [ms] (mean)
Time per request: 0.781 [ms] (mean, across all concurrent requests)
Transfer rate: 480.29 [Kbytes/sec] received
Questo risultato è costantemente riproducibile, +/- una piccola percentuale.
In JMeter, ho un gruppo filo 100-loop 1-utente contenente:
- un'intestazione modificando Accept-Encoding gestore HTTP: gzip
- un HTTP Get/campionatore
- una relazione di sintesi ascoltatore
Con solo 100 campioni, questo dà selvaggiamente risultati incoerenti ogni volta che lo eseguo. Ma il fatto più sorprendente è che il throughput viene segnalato a partire da 40 richieste al secondo (non 1280). Il più alto tasso registrato era 1030, e ciò è stato ottenuto solo quando sono aumentato a 10.000 campioni.
Ho ragione nel pensare che JMeter sia lo strumento sbagliato per test di carico semplici perché i suoi costi generali sono troppo alti per consentire misurazioni accurate?
+1, tuttavia penso che le tue conclusioni siano corrette. –