...
This section documents the results of
Jira | ||||||
---|---|---|---|---|---|---|
|
Cluster configuration
The cluster used for testing is the original IASSIST cluster. This uses an m1.medium (2CPU, 4G) for the loadbalancer and 4 compute nodes.
Baseline service: Nginx
This test uses the nginx-ingress-controller as the loadbalancer and a simple Nginx webserver as the backend service. An ingress rule was created manually to map perf-nginx.cluster.ndslabs.org to the backend service.
...
Use the boom load test generator to scale up concurrent requests on using a Nebula m1.medium VM:large VM (8 VCPUs). The following script calls boom with increasing number of concurrent requests (-c in 100:1000) while also increasing the number of total requests (-n in 1000:10000).
Code Block |
---|
for i in `seq 1 10` do con=$((100*$i)) req=$((1001000*$i)) echo "bin/boom -cpus 4 -n 1000$req -c $req$con http://perf-nginx.iassist.ndslabs.org/" bin/boom -cpus 4 -n 1000$req -c $req$con http://perf-nginx.iassist.ndslabs.org/ sleep 1 done |
...
Code Block |
---|
bin/boom -cpus 4 -n 10008000 -c 500800 http://perf-nginx.iassist.ndslabs.org/ Summary: Total: 03.15394305 secs Slowest: 03.13350162 secs Fastest: 0.01930009 secs Average: 0.06851335 secs Requests/sec: 48422332.28400068 Status code distribution: [200] 7458000 responses Response time histogram: 0.019001 [1] | 0.031302 [287093] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ 0.042604 [110371] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ 0.054906 [694] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ 01.065207 [161471] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ 01.076509 [15728] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎ 01.088810 [600] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎ 02.099112 [380] |∎∎∎∎∎∎∎∎∎ 02.111413 [490] |∎∎∎∎∎∎∎∎∎∎∎∎ 02.122715 [370] |∎∎∎∎∎∎∎∎∎ 03.134016 [3532] |∎∎∎∎∎∎∎∎ Latency distribution: 10% in 0.03940111 secs 25% in 0.05020183 secs 50% in 0.06520305 secs 75% in 0.08080554 secs 90% in 0.11033304 secs 95% in 01.12170200 secs 99% in 01.12930767 secssec |
Below is a plot of average response time with increasing concurrent requests (-n 1000 requests) and replicas. Average response times increase as the number of concurrent requests increase, but still remain below 1 second. Adding more replicas does not have an apparent effect, suggesting that the response time is related to the ingress load-balancer, not the backend service.
Below is a plot of the latency distribution at 25%, 50%, 75%, and 90% 95% of requests with increasing concurrent connections. So, up to 1000 concurrent connections, 75% of requests . At 600 have latency < 0.1 seconds. Starting around 200 concurrent requests, the number 5% of requests with longer latency periods increaseshave increasing latency – up to 1 second.
Measuring CPU/Memory utilization
...