- Created by Francesco Sinisi, last updated on Apr 19, 2021 4 minute read
The next goal is to "break" the cluster. By gradually increasing the number of replicas of the deployment that sends requests to the php-apache application, one finds the breaking point, which obviously grows as the flavor of the VMs grows.
StressTest (xLarge) Expand source
$ kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=200 $ kubectl scale deploy infinite-calls --replicas=50 $ kubectl get deploy NAME READY UP-TO-DATE AVAILABLE AGE infinite-calls 50/50 50 50 6h6m php-apache 112/127 127 112 22h $ kubectl get hpa --watch NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 0%/50% 1 200 1 11m php-apache Deployment/php-apache 78%/50% 1 200 1 12m php-apache Deployment/php-apache 78%/50% 1 200 2 12m php-apache Deployment/php-apache 249%/50% 1 200 2 13m php-apache Deployment/php-apache 249%/50% 1 200 4 13m php-apache Deployment/php-apache 249%/50% 1 200 8 13m php-apache Deployment/php-apache 249%/50% 1 200 10 13m php-apache Deployment/php-apache 221%/50% 1 200 10 14m php-apache Deployment/php-apache 221%/50% 1 200 14 14m php-apache Deployment/php-apache 223%/50% 1 200 14 15m php-apache Deployment/php-apache 223%/50% 1 200 28 15m php-apache Deployment/php-apache 223%/50% 1 200 56 15m php-apache Deployment/php-apache 174%/50% 1 200 56 15m php-apache Deployment/php-apache 174%/50% 1 200 77 16m php-apache Deployment/php-apache 85%/50% 1 200 77 17m php-apache Deployment/php-apache 85%/50% 1 200 127 17m php-apache Deployment/php-apache 57%/50% 1 200 127 18m php-apache Deployment/php-apache 58%/50% 1 200 127 19m php-apache Deployment/php-apache 59%/50% 1 200 127 20m php-apache Deployment/php-apache 57%/50% 1 200 127 21m php-apache Deployment/php-apache 59%/50% 1 200 127 22m php-apache Deployment/php-apache 58%/50% 1 200 127 23m php-apache Deployment/php-apache 59%/50% 1 200 127 24m php-apache Deployment/php-apache 58%/50% 1 200 127 25m php-apache Deployment/php-apache 59%/50% 1 200 127 27m php-apache Deployment/php-apache 60%/50% 1 200 127 28m php-apache Deployment/php-apache 59%/50% 1 200 127 29m php-apache Deployment/php-apache 59%/50% 1 200 127 30m php-apache Deployment/php-apache 59%/50% 1 200 127 31m php-apache Deployment/php-apache 0%/50% 1 200 127 32m php-apache Deployment/php-apache 0%/50% 1 200 127 35m php-apache Deployment/php-apache 0%/50% 1 200 1 35m
StressTest (large) Expand source
$ kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=100 $ kubectl scale deploy infinite-calls --replicas=30 $ kubectl get deploy NAME READY UP-TO-DATE AVAILABLE AGE infinite-calls 30/30 30 30 25h php-apache 52/85 85 52 25h $ kubectl get hpa --watch NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 0%/50% 1 100 1 45s php-apache Deployment/php-apache 250%/50% 1 100 1 78s php-apache Deployment/php-apache 250%/50% 1 100 4 93s php-apache Deployment/php-apache 250%/50% 1 100 5 108s php-apache Deployment/php-apache 235%/50% 1 100 5 2m19s php-apache Deployment/php-apache 235%/50% 1 100 10 2m35s php-apache Deployment/php-apache 235%/50% 1 100 19 2m50s php-apache Deployment/php-apache 212%/50% 1 100 19 3m21s php-apache Deployment/php-apache 212%/50% 1 100 38 3m36s php-apache Deployment/php-apache 212%/50% 1 100 43 3m51s php-apache Deployment/php-apache 99%/50% 1 100 43 4m22s php-apache Deployment/php-apache 99%/50% 1 100 58 4m38s php-apache Deployment/php-apache 86%/50% 1 100 58 5m9s php-apache Deployment/php-apache 86%/50% 1 100 85 5m24s php-apache Deployment/php-apache 84%/50% 1 100 85 7m12s php-apache Deployment/php-apache 86%/50% 1 100 85 8m15s php-apache Deployment/php-apache 87%/50% 1 100 85 9m17s php-apache Deployment/php-apache 83%/50% 1 100 85 10m php-apache Deployment/php-apache 87%/50% 1 100 85 11m php-apache Deployment/php-apache 85%/50% 1 100 85 13m php-apache Deployment/php-apache 86%/50% 1 100 85 14m php-apache Deployment/php-apache 85%/50% 1 100 85 15m php-apache Deployment/php-apache 87%/50% 1 100 85 16m php-apache Deployment/php-apache 86%/50% 1 100 85 17m php-apache Deployment/php-apache 86%/50% 1 100 85 18m php-apache Deployment/php-apache 85%/50% 1 100 85 20m php-apache Deployment/php-apache 0%/50% 1 100 85 21m php-apache Deployment/php-apache 0%/50% 1 100 85 26m php-apache Deployment/php-apache 0%/50% 1 100 1 26m
StressTest (medium) Expand source
$ kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=50 $ kubectl scale deploy infinite-calls --replicas=15 $ kubectl get deploy NAME READY UP-TO-DATE AVAILABLE AGE infinite-calls 15/15 15 15 5h4m php-apache 22/42 42 22 5h6m $ kubectl get hpa --watch NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 0%/50% 1 50 1 49m php-apache Deployment/php-apache 250%/50% 1 50 1 50m php-apache Deployment/php-apache 250%/50% 1 50 4 50m php-apache Deployment/php-apache 250%/50% 1 50 5 51m php-apache Deployment/php-apache 212%/50% 1 50 5 51m php-apache Deployment/php-apache 212%/50% 1 50 9 51m php-apache Deployment/php-apache 197%/50% 1 50 9 52m php-apache Deployment/php-apache 197%/50% 1 50 18 52m php-apache Deployment/php-apache 197%/50% 1 50 36 52m php-apache Deployment/php-apache 100%/50% 1 50 36 53m php-apache Deployment/php-apache 100%/50% 1 50 42 53m php-apache Deployment/php-apache 99%/50% 1 50 42 54m php-apache Deployment/php-apache 102%/50% 1 50 42 55m php-apache Deployment/php-apache 102%/50% 1 50 42 56m php-apache Deployment/php-apache 101%/50% 1 50 42 57m php-apache Deployment/php-apache 100%/50% 1 50 42 58m php-apache Deployment/php-apache 99%/50% 1 50 42 59m php-apache Deployment/php-apache 101%/50% 1 50 42 60m php-apache Deployment/php-apache 100%/50% 1 50 42 61m php-apache Deployment/php-apache 98%/50% 1 50 42 63m php-apache Deployment/php-apache 100%/50% 1 50 42 64m php-apache Deployment/php-apache 101%/50% 1 50 42 65m php-apache Deployment/php-apache 97%/50% 1 50 42 66m php-apache Deployment/php-apache 101%/50% 1 50 42 67m php-apache Deployment/php-apache 100%/50% 1 50 42 68m php-apache Deployment/php-apache 0%/50% 1 50 42 69m php-apache Deployment/php-apache 0%/50% 1 50 42 74m php-apache Deployment/php-apache 0%/50% 1 50 1 74m
We can deduce from these graphs, observing the ordinate axis, the percentage of CPU used. The maximum CPU available is given by the sum of the CPUs of the worker nodes alone, which bear all the workload (it is preferable not to perform operations on the master to protect it from any crashes). We have respectively 24, 12 and 6 CPUs available based on flavor and, on average, a percentage equal to approximately 115%, 79% and 82% of use.
StressTest (xLarge)
StressTest (large)
StressTest (medium)
- No labels