Nachdem ich mittlerweile drei lokale Webserver mit sehr unterschiedlichen Ausstattungen betreibe, muss ich natürlich auch ihre Leistung bei der Auslieferung einer dynamisch generierten Webseite vergleichen (ab -c50 -n500 http://django(server|think|book)/
):
Server Software: | nginx/1.18.0 | nginx/1.18.0 | nginx/1.23.1 |
---|---|---|---|
Server Hostname: | djangoserver.rhine (NUC) | djangothink.rhine (LTP) | djangobook.rhine (MBP) |
Server Port: | 80 | 80 | 80 |
Document Path: | / | / | / |
Document Length: | 65820 bytes | 65820 bytes | 65820 bytes |
Concurrency Level: | 50 | 50 | 50 |
Time taken for tests: | 3.056 seconds | 8.081 seconds | 1.595 seconds |
Complete requests: | 500 | 500 | 500 |
Failed requests: | 0 | 0 | 0 |
Total transferred: | 33058000 bytes | 33058000 bytes | 33065000 bytes |
HTML transferred: | 32910000 bytes | 32910000 bytes | 32910000 bytes |
Requests per second: | 163.60 [#/sec] (mean) | 61.87 [#/sec] (mean) | 313.49 [#/sec] (mean) |
Time per request: | 305.624 [ms] (mean) | 808.148 [ms] (mean) | 159.492 [ms] (mean) |
Time per request: | 6.112 [ms] (mean, across all concurrent requests) | 16.163 [ms] (mean, across all concurrent requests) | 3.190 [ms] (mean, across all concurrent requests) |
Transfer rate: | 10563.03 [Kbytes/sec] received | 3994.71 [Kbytes/sec] received | 20245.53 [Kbytes/sec] received |
Wie zu erwarten, ist der Aufruf vom MacBook Pro (localhost) am schnellsten, gefolgt vom aktuellen Intel NUC-System (Ethernet/WLAN), während das ältere ThinkPad (WLAN/WLAN) signifikant langsamer liefert.
Ebenfalls erwartbar sind die Ergebnisse für die Auslieferung einer statischen Webseite durch die lokalen Server und das Produktivsystem:
Server Software: | nginx/1.18.0 | nginx/1.18.0 | nginx/1.23.1 | nginx/1.18.0 |
---|---|---|---|---|
Server Hostname: | staticserver.rhine (NUC) | staticthink.rhine (LTP) | staticbook.rhine (MBP) | eden.one (VPS) |
Server Port: | 80 | 80 | 80 | 443 |
Document Path: | / | / | / | / |
Document Length: | 65361 bytes | 65361 bytes | 65361 bytes | 65361 bytes |
Concurrency Level: | 50 | 50 | 50 | 50 |
Time taken for tests: | 0.530 seconds | 1.557 seconds | 0.142 seconds | 3.210 seconds |
Complete requests: | 500 | 500 | 500 | 500 |
Failed requests: | 0 | 0 | 0 | 0 |
Total transferred: | 32803000 bytes | 32803000 bytes | 32810000 bytes | 32959500 bytes |
HTML transferred: | 32680500 bytes | 32680500 bytes | 32680500 bytes | 32680500 bytes |
Requests per second: | 942.71 [#/sec] (mean) | 321.14 [#/sec] (mean) | 3524.08 [#/sec] (mean) | 155.78 [#/sec] (mean) |
Time per request: | 53.039 [ms] (mean) | 155.694 [ms] (mean) | 14.188 [ms] (mean) | 320.967 [ms] (mean) |
Time per request: | 1.061 [ms] (mean, across all concurrent requests) | 3.114 [ms] (mean, across all concurrent requests) | 0.284 [ms] (mean, across all concurrent requests) | 6.419 [ms] (mean, across all concurrent requests) |
Transfer rate: | 60397.63 [Kbytes/sec] received | 20575.09 [Kbytes/sec] received | 225830.21 [Kbytes/sec] received | 10028.12 [Kbytes/sec] received |
Der virtuelle Server in Baden-Baden schlägt sich trotz des Overheads für die Transportverschlüsselung (TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256
) erstaunlich gut und macht seinem PageSpeed-Ergebnis alle Ehre.