➜ ~ docker run -p 8080:8080 -it echo :8080
No limits at all (16 core ryzen)
➜ ~ hey -n 100 -c 50 http://localhost:8080/echo
Summary:
Total: 0.0220 secs
Slowest: 0.0189 secs
Fastest: 0.0024 secs
Average: 0.0090 secs
Requests/sec: 4554.2092
Total data: 70800 bytes
Size/request: 708 bytes
Response time histogram:
0.002 [1] |■
0.004 [6] |■■■■■■■
0.006 [23] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.007 [19] |■■■■■■■■■■■■■■■■■■■■■■■
0.009 [10] |■■■■■■■■■■■■
0.011 [0] |
0.012 [3] |■■■■
0.014 [33] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.016 [0] |
0.017 [0] |
0.019 [5] |■■■■■■
Latency distribution:
10% in 0.0046 secs
25% in 0.0055 secs
50% in 0.0076 secs
75% in 0.0130 secs
90% in 0.0137 secs
95% in 0.0185 secs
99% in 0.0189 secs
Details (average, fastest, slowest):
DNS+dialup: 0.0010 secs, 0.0024 secs, 0.0189 secs
DNS-lookup: 0.0004 secs, 0.0000 secs, 0.0038 secs
req write: 0.0002 secs, 0.0000 secs, 0.0030 secs
resp wait: 0.0078 secs, 0.0024 secs, 0.0153 secs
resp read: 0.0000 secs, 0.0000 secs, 0.0000 secs
Status code distribution:
[200] 100 responses
2 CPUs:
➜ ~ hey -n 100 -c 50 http://localhost:8080/echo
Summary:
Total: 0.0631 secs
Slowest: 0.0595 secs
Fastest: 0.0025 secs
Average: 0.0265 secs
Requests/sec: 1583.6750
Total data: 70800 bytes
Size/request: 708 bytes
Response time histogram:
0.002 [1] |■
0.008 [19] |■■■■■■■■■■■■■■■■■■■■■■■■
0.014 [32] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.020 [4] |■■■■■
0.025 [0] |
0.031 [0] |
0.037 [0] |
0.042 [3] |■■■■
0.048 [23] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.054 [7] |■■■■■■■■■
0.060 [11] |■■■■■■■■■■■■■■
Latency distribution:
10% in 0.0049 secs
25% in 0.0110 secs
50% in 0.0124 secs
75% in 0.0450 secs
90% in 0.0551 secs
95% in 0.0555 secs
99% in 0.0595 secs
Details (average, fastest, slowest):
DNS+dialup: 0.0009 secs, 0.0025 secs, 0.0595 secs
DNS-lookup: 0.0004 secs, 0.0000 secs, 0.0059 secs
req write: 0.0012 secs, 0.0000 secs, 0.0092 secs
resp wait: 0.0225 secs, 0.0024 secs, 0.0490 secs
resp read: 0.0008 secs, 0.0000 secs, 0.0074 secs
Status code distribution:
[200] 100 responses
1 CPU
➜ ~ hey -n 100 -c 50 http://localhost:8080/echo
Summary:
Total: 0.3605 secs
Slowest: 0.2584 secs
Fastest: 0.0029 secs
Average: 0.1163 secs
Requests/sec: 277.4020
Total data: 70800 bytes
Size/request: 708 bytes
Response time histogram:
0.003 [1] |■■
0.028 [9] |■■■■■■■■■■■■■■
0.054 [0] |
0.080 [24] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.105 [16] |■■■■■■■■■■■■■■■■■■■■■■■■■■
0.131 [6] |■■■■■■■■■■
0.156 [0] |
0.182 [25] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.207 [18] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.233 [0] |
0.258 [1] |■■
Latency distribution:
10% in 0.0564 secs
25% in 0.0616 secs
50% in 0.1056 secs
75% in 0.1661 secs
90% in 0.2001 secs
95% in 0.2007 secs
99% in 0.2584 secs
Details (average, fastest, slowest):
DNS+dialup: 0.0006 secs, 0.0029 secs, 0.2584 secs
DNS-lookup: 0.0002 secs, 0.0000 secs, 0.0009 secs
req write: 0.0003 secs, 0.0000 secs, 0.0020 secs
resp wait: 0.1153 secs, 0.0029 secs, 0.2570 secs
resp read: 0.0000 secs, 0.0000 secs, 0.0005 secs
Status code distribution:
[200] 100 responses
0.5 CPUs
➜ ~ hey -n 100 -c 50 http://localhost:8080/echo
Summary:
Total: 0.6315 secs
Slowest: 0.5314 secs
Fastest: 0.0025 secs
Average: 0.1958 secs
Requests/sec: 158.3472
Total data: 70800 bytes
Size/request: 708 bytes
Response time histogram:
0.002 [1] |■■
0.055 [25] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.108 [3] |■■■■■
0.161 [20] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.214 [20] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.267 [0] |
0.320 [1] |■■
0.373 [17] |■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.426 [2] |■■■
0.479 [0] |
0.531 [11] |■■■■■■■■■■■■■■■■■■
Latency distribution:
10% in 0.0031 secs
25% in 0.0072 secs
50% in 0.1964 secs
75% in 0.3311 secs
90% in 0.5271 secs
95% in 0.5307 secs
99% in 0.5314 secs
Details (average, fastest, slowest):
DNS+dialup: 0.0008 secs, 0.0025 secs, 0.5314 secs
DNS-lookup: 0.0006 secs, 0.0000 secs, 0.0043 secs
req write: 0.0004 secs, 0.0000 secs, 0.0039 secs
resp wait: 0.1941 secs, 0.0024 secs, 0.5269 secs
resp read: 0.0001 secs, 0.0000 secs, 0.0007 secs
Status code distribution:
[200] 100 responses
And with 0.1 CPUs (100m cores as used in many production services)
docker run --cpus=0.1 -p 8080:8080 -it echo :8080
➜ ~ hey -n 100 -c 50 http://localhost:8080/echo
Summary:
Total: 3.6369 secs
Slowest: 3.4372 secs
Fastest: 0.0024 secs
Average: 1.3670 secs
Requests/sec: 27.4961
Total data: 70800 bytes
Size/request: 708 bytes
Response time histogram:
0.002 [1] |■■
0.346 [16] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0.689 [13] |■■■■■■■■■■■■■■■■■■■■■■■
1.033 [5] |■■■■■■■■■
1.376 [14] |■■■■■■■■■■■■■■■■■■■■■■■■
1.720 [23] |■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
2.063 [9] |■■■■■■■■■■■■■■■■
2.407 [4] |■■■■■■■
2.750 [5] |■■■■■■■■■
3.094 [2] |■■■
3.437 [8] |■■■■■■■■■■■■■■
Latency distribution:
10% in 0.0039 secs
25% in 0.5001 secs
50% in 1.5368 secs
75% in 1.8994 secs
90% in 2.8365 secs
95% in 3.4368 secs
99% in 3.4372 secs
Details (average, fastest, slowest):
DNS+dialup: 0.0007 secs, 0.0024 secs, 3.4372 secs
DNS-lookup: 0.0003 secs, 0.0000 secs, 0.0021 secs
req write: 0.0002 secs, 0.0000 secs, 0.0018 secs
resp wait: 1.3660 secs, 0.0024 secs, 3.4362 secs
resp read: 0.0000 secs, 0.0000 secs, 0.0001 secs
Status code distribution:
[200] 100 responses