Contour / Envoy Resource Limits

Performance Testing Contour / Envoy

  • Cluster Specs
    • Kubernetes
    • Version: v1.12.6
    • Nodes:
      • 5 Worker Nodes
      • 2 CPUs Per Node
      • 8 GB RAM Per Node
      • 10 GB Network
    • Contour
    • Single Instance
      • 4 Instances of Envoy running in a Daemonset
      • Each instance of Envoy is running with HostNetwork
    • Cluster Network Bandwidth

Having a good understanding of the available bandwidth is key when it comes to analyzing performance. It will give you a sense of how many requests per second you can expect to push through the network you are working with.

Use iperf3 to figure out the bandwidth available between two of the kubernetes nodes. The following will deploy an iperf3 server on one node, and an iperf3 client on another node:

[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-60.00  sec  34.7 GBytes  4.96 Gbits/sec  479             sender
[  4]   0.00-60.00  sec  34.7 GBytes  4.96 Gbits/sec                  receiver

Memory / CPU usage

Verify the Memory & CPU usage with varying numbers of services, IngressRoute resources, and traffic load into the cluster.

Test Criteria Contour Envoy
#Svc #Ing RPS CC Memory (MB) CPU% / Core Memory (MB) CPU% / Core
0 0 0 0 10 0 15 0
5k 0 0 0 46 2% 15 0%
10k 0 0 0 77 3% 205 2%
0 5k 0 0 36 1% 230 2%
0 10k 0 0 63 1% 10 1%
5k 5k 0 0 244 1% 221 1%
10k 10k 0 0 2600 6% 430 4%
0 0 30k 600 8 1% 17 3%
0 0 100k 10k 10 1% 118 14%
0 0 200k 20k 9 1% 191 31%
0 0 300k 30k 10 1% 225 40%
Ready to try Contour?

Read our getting started documentation.