2016-10-28 3 views
0

Je suis l'analyse comparative d'une application simple helloworld écrit dans mon cadre contre le one écrit en SpringBoot.taux de transfert en ab apache de référence

Le journal ab pour la version SpringBoot:

luog~$ ab -n 100000 -c 20 http://localhost:8080/hello?name=rythm 
This is ApacheBench, Version 2.3 <$Revision: 1706008 $> 
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ 
Licensed to The Apache Software Foundation, http://www.apache.org/ 

Benchmarking localhost (be patient) 
Completed 10000 requests 
Completed 20000 requests 
Completed 30000 requests 
Completed 40000 requests 
Completed 50000 requests 
Completed 60000 requests 
Completed 70000 requests 
Completed 80000 requests 
Completed 90000 requests 
Completed 100000 requests 
Finished 100000 requests 


Server Software:  Apache-Coyote/1.1 
Server Hostname:  localhost 
Server Port:   8080 

Document Path:   /hello?name=rythm 
Document Length:  155 bytes 

Concurrency Level:  20 
Time taken for tests: 6.733 seconds 
Complete requests:  100000 
Failed requests:  0 
Total transferred:0000 bytes 
HTML transferred:  15500000 bytes 
Requests per second: 14851.38 [#/sec] (mean) 
Time per request:  1.347 [ms] (mean) 
Time per request:  0.067 [ms] (mean, across all concurrent requests) 
Transfer rate:   4655.56 [Kbytes/sec] received 

Connection Times (ms) 
       min mean[+/-sd] median max 
Connect:  0 0 0.1  0  2 
Processing:  0 1 0.7  1  15 
Waiting:  0 1 0.7  1  15 
Total:   0 1 0.7  1  15 

Percentage of the requests served within a certain time (ms) 
    50%  1 
    66%  1 
    75%  2 
    80%  2 
    90%  2 
    95%  2 
    98%  3 
    99%  4 
100%  15 (longest request) 

Et le journal ab pour ActFramework:

luog~$ ab -n 100000 -c 20 http://localhost:5460/?who=rythm 
This is ApacheBench, Version 2.3 <$Revision: 1706008 $> 
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ 
Licensed to The Apache Software Foundation, http://www.apache.org/ 

Benchmarking localhost (be patient) 
Completed 10000 requests 
Completed 20000 requests 
Completed 30000 requests 
Completed 40000 requests 
Completed 50000 requests 
Completed 60000 requests 
Completed 70000 requests 
Completed 80000 requests 
Completed 90000 requests 
Completed 100000 requests 
Finished 100000 requests 


Server Software:   
Server Hostname:  localhost 
Server Port:   5460 

Document Path:   /?who=rythm 
Document Length:  111 bytes 

Concurrency Level:  20 
Time taken for tests: 6.796 seconds 
Complete requests:  100000 
Failed requests:  0 
Total transferred:  18600000 bytes 
HTML transferred:  11100000 bytes 
Requests per second: 14714.64 [#/sec] (mean) 
Time per request:  1.359 [ms] (mean) 
Time per request:  0.068 [ms] (mean, across all concurrent requests) 
Transfer rate:   2672.78 [Kbytes/sec] received 

Connection Times (ms) 
       min mean[+/-sd] median max 
Connect:  0 0 0.0  0  1 
Processing:  0 1 1.2  1  9 
Waiting:  0 1 1.2  1  9 
Total:   0 1 1.2  1  9 

Percentage of the requests served within a certain time (ms) 
    50%  1 
    66%  2 
    75%  2 
    80%  3 
    90%  3 
    95%  3 
    98%  4 
    99%  4 
100%  9 (longest request) 

Comme on peut le voir les transactions par seconde sont à peu près les mêmes. Cependant, le taux de transfert est très différent. La version SpringBoot a dépassé 4.5Kb/s, alors que la version Act n'a que 2.7Kb/s.

Je me demande

  1. Pourquoi le temps de réponse est à peu près le même alors que le taux de transfert est si différent?

  2. Comment améliorer le taux de transfert? J'utilise en tant que ma couche de réseau, devrait-il y avoir quelque chose que je peux faire pour syntoniser le ressac? Here est mon code qui crée la couche réseau undertow

+0

Le nombre de demandes traitées est le même, mais les réponses sont différentes, tant dans le contenu que dans les en-têtes HTTP. D'où la différence dans le trafic, aussi. – apangin

+0

ouais, dommage que je n'ai pas repéré ça. Pouvez-vous s'il vous plaît mettre votre commentaire dans une réponse afin que je puisse vous donner les informations d'identification? –

Répondre

1

Le nombre de demandes traitées est le même, mais les réponses sont différentes, à la fois dans le contenu et les en-têtes HTTP. D'où la différence dans le trafic, aussi.