Difference between revisions of "Loadbalancers"
Jump to navigation
Jump to search
(9 intermediate revisions by the same user not shown) | |||
Line 31: | Line 31: | ||
ddosify -n 30000 -d 3 -t https://demo.example.com | ddosify -n 30000 -d 3 -t https://demo.example.com | ||
`` | `` | ||
+ | |||
+ | # k6 - Detailed flexible tests | ||
+ | - https://k6.io/our-beliefs/#simple-testing-is-better-than-no-testing | ||
+ | |||
+ | ## Large Tests with K6 | ||
+ | - https://k6.io/docs/testing-guides/running-large-tests/ | ||
+ | - https://www.freecodecamp.org/news/how-we-fine-tuned-haproxy-to-achieve-2-000-000-concurrent-ssl-connections-d017e61a4d27/ | ||
+ | |||
+ | # Vegeta | ||
+ | - https://github.com/tsenart/vegeta | ||
+ | |||
+ | # HTTP Perf | ||
+ | - https://github.com/httperf/httperf | ||
+ | |||
+ | # wrk | ||
+ | - https://github.com/wg/wrk | ||
+ | |||
+ | # nghttp2 | ||
+ | - https://github.com/nghttp2/nghttp2 | ||
+ | |||
+ | # Simple k8s metrics | ||
+ | |||
+ | # kubectl top node/pod | ||
+ | |||
+ | ``` | ||
+ | while true; do kubectl top node; sleep 1; done | ||
+ | while true; do kubectl top pod -n default; sleep 1; done | ||
+ | while true; do kubectl top pod -A; sleep 1; done | ||
+ | ``` | ||
+ | |||
+ | |||
+ | - 1000m (milicores) = 1 core = 1 vCPU = 1 AWS vCPU = 1 GCP Core. | ||
+ | - 100m (milicores) = 0.1 core = 0.1 vCPU = 0.1 AWS vCPU = 0.1 GCP Core. | ||
+ | - 8000m = 8 cores = 8 vCPUs | ||
+ | |||
+ | ``` | ||
+ | CPU(cores) | ||
+ | 338m means 338 millicpu. 1000m is equal to 1 CPU, hence 338m means 33.8% of 1 CPU. | ||
+ | CPU% | ||
+ | It is displayed only for nodes, and it stands for the total CPU usage percentage of that node. | ||
+ | Memory | ||
+ | Memory being used by that node | ||
+ | Memory% | ||
+ | It is also displayed only for nodes, and it stands for total memory usage percentage of that node. | ||
+ | ``` |
Latest revision as of 16:03, 18 February 2023
Performance & Comparisons
Perf Tests
- https://github.com/NickMRamirez/Proxy-Benchmarks
- https://www.loggly.com/blog/benchmarking-5-popular-load-balancers-nginx-haproxy-envoy-traefik-and-alb/
Migrations
Repsonces
haproxy
- https://www.cloudbees.com/blog/performance-tuning-haproxy
- https://httpd.apache.org/docs/2.4/programs/ab.html
HTTP(S) Performance Testing Tools
Apache Benchmark Tool
apt-get install apache2-utils ab -c 2500 -n 5000 https://demo.uvoo.io/
ddosify
- https://github.com/ddosify/ddosify
ddosify -n 30000 -d 3 -t https://demo.example.com
k6 - Detailed flexible tests
Large Tests with K6
- https://k6.io/docs/testing-guides/running-large-tests/
- https://www.freecodecamp.org/news/how-we-fine-tuned-haproxy-to-achieve-2-000-000-concurrent-ssl-connections-d017e61a4d27/
Vegeta
HTTP Perf
wrk
nghttp2
Simple k8s metrics
kubectl top node/pod
while true; do kubectl top node; sleep 1; done while true; do kubectl top pod -n default; sleep 1; done while true; do kubectl top pod -A; sleep 1; done
- 1000m (milicores) = 1 core = 1 vCPU = 1 AWS vCPU = 1 GCP Core.
- 100m (milicores) = 0.1 core = 0.1 vCPU = 0.1 AWS vCPU = 0.1 GCP Core.
- 8000m = 8 cores = 8 vCPUs
CPU(cores) 338m means 338 millicpu. 1000m is equal to 1 CPU, hence 338m means 33.8% of 1 CPU. CPU% It is displayed only for nodes, and it stands for the total CPU usage percentage of that node. Memory Memory being used by that node Memory% It is also displayed only for nodes, and it stands for total memory usage percentage of that node.