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
Pourquoi le temps de réponse est à peu près le même alors que le taux de transfert est si différent?
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
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
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? –