HAProxy Technologies has announced that in head-to-head benchmarking tests the HAProxy Kubernetes Ingress Controller out performed those from Envoy, NGINX, NGINX Inc. and Traefik across the most crucial performance metrics.
The HAProxy Kubernetes Ingress Controller is a Kubernetes-native construct for traffic routing. The benchmarking was aimed at assessing the ability of each ingress controller to handle average requests per second, latency, CPU usage, and HTTP errors.
HAProxy said it benchmarked the five popular Ingress Controllers in Kubernetes with their default out-of-box configurations. The test used 50 concurrent workers from five traffic-injecting pods.
Several changes were made while the tests were running, which included scaling up pods, adding CORS headers, and adding path rewrites.
At the end of benchmarking, HAProxy graphed the average requests per second; the 75th, 95th and 99th latency percentiles; user level CPU usage; as well as the number of HTTP error codes received. Here are the results.
It is worth mentioning here that HAProxy handled approximately 42,000 requests per second. Traefik was second with 19,000, Envoy was third with 18,500; followed by NGINX Inc. third with 15,200 and NGINX with just over 11,700.
Also, HAProxy was lowest across the board for the 75th, 95th and 99th percentiles. Envoy came in second, and NGINX Inc and Traefik were neck-and-neck for third. NGINX demonstrated drastic spikes in the 95th and 99th percentiles to finish last.
NGINX Inc and HAProxy were neck-and-neck with just under 50 percent. NGINX was third at 65 percent, and Envoy and Traefik came in at 73 and 70 percent, respectively. It’s important to note that despite its significantly greater request rate, HAProxy was still able to maintain a lower CPU rate.