Istio Ambient Mesh Performance Test and Benchmarking
Explore load test performance results of Istio Ambient and Istio sidecar service mesh with Kube CNI and Cilium CNI for DevOps and Cloud teams.
Join the DZone community and get the full member experience.
Join For FreeIstio is the most popular service mesh, but the DevOps and SREs community constantly complain about its performance. Istio Ambient is a sidecar-less approach by the Istio committee (majorly driven by SOLO.io) to improve performance. Since there are many promotions about Ambient mesh being production-ready, many of our prospects and enterprises are generally eager to try or migrate to Ambient mesh.
Architecturally, the Istio Ambient mesh is a great design that improves performance. But whether it performs quickly is still a question. We have tried Istio Ambient Mesh and observed the performance countless times between January 2024 and July 2024, and we have yet to see any significant performance gains.
Below is the lab setup on which we ran our experiments.
Lab Setup to Load Test Istio Ambient Mesh
- Load testing tool: Fortio
- Application configuration: Bookinfo Application
- Total requests fired: 1000 queries/second (QPS), 10 connections, and for 30 seconds
- Cluster configuration: Azure (AKS) clusters with 3 nodes
- Node configuration: 2 VCPU and 7GB memory for each node
- CNI used: Kube CNI and Cilium (We did not use Flannel because it was not working well with AKS.)
Note:
- We have kept all the applications and Fortio in different nodes.
- We have exposed the
Rating
microservice and NOTDetails
service to handle external traffic. Because theDetails
microservice is written in Ruby, it is unfit for handling higher QPS. We sent a load of100 QPS
and1000 QPS
to theDetails
service without Istio, and thep99 latency
for100 QPS
is around6 ms
, but it goes up to50 ms
for1000 QPS
.
Performance Test on Istio Ambient Mesh With Kube CNI and Cilium
We have carried out the performance or load test for the following cases:
- Kube CNI
- Kube CNI + Istio sidecar (mTLS enabled)
- Kube CNI + Istio Ambient mesh (mTLS enabled)
- Cilium CNI
- Cilium CNI + Istio sidecar (mTLS enabled)
- Cilium CNI + Istio Ambient mesh (mTLS enabled)
Although we have tested the load for each case multiple times, we have attached only one screenshot to showcase the standard deviation of P99 latency in each case. Please refer to the load test results in the next section.
Load Test Results for Kube CNI Without Istio
- Observed (Median) P99 latency: 1.12ms
Figure 1: Kube CNI + Without Istio
Load Test of Kube CNI and Istio Sidecar (mTLS Enabled)
- Observed (Median) P99 latency: 4.72 ms
Figure 2: Kube CNI + With Istio Sidecar (mtLS enabled)
Load Test of Kube CNI and Istio Ambient Mesh (mTLS Enabled)
- Observed (Median) P99 latency: 3.6 ms
Figure 3: Kube CNI + With Istio Ambient (mtLS enabled)
Load Test of Cilium CNI Without Istio
- Observed (Median) P99 latency: 4.5 ms
Figure 4: Cilium CNI + Without Istio
Load Test of Cilium CNI and Istio Sidecar (mTLS Enabled)
- Observed (Median) P99 latency: 8.8 ms
Figure 5: Cilium CNI + With Istio Sidecar
Load Test of Cilium CNI and Istio Ambient Mesh (mTLS Enabled)
- Observed (Median) P99 latency: 6.8 ms
Figure 6: Cilium CNI + With Istio Ambient
Final Load Test Results and Benchmarking of Rating Service With and Without Istio
Here are the benchmarking results for the p99 latency of the Rating service with and without Istio (sidecar and Ambient mesh).
Sl No
|
Cases
|
p99 latency(ms)
|
---|---|---|
1
|
Kube CNI
|
1.12
|
2
|
Kube CNI + Istio sidecar (mTLS enabled)
|
4.72
|
3
|
Kube CNI + Istio Ambient mesh (mTLS enabled) |
3.6
|
4
|
Cilium CNI
|
4.5
|
5
|
Cilium CNI + Istio sidecar (mTLS enabled)
|
8.8
|
6
|
Cilium CNI + Istio Ambient mesh (mTLS enabled)
|
6.8
|
Conclusion
Three items are concluded from this extensive load test of Istio Ambient Mesh:
- The performance of Istio Ambient mesh will never give you thunderbolt improvements over latency when compared with plain Kube CNI. Note that using Ztunnel for encryption still involves network hops, which will increase the latency. Yes, it is better than Istio sidecar architecture.
- Regardless of the CNI used, the performance (p99 latency) of the Istio Ambient Mesh is 20% better than that of the Istio sidecar.
- Combining Cilium and Istio (sidecar or Ambient) produces undesirable results. If you are looking for performance improvements, you should avoid this mix.
Published at DZone with permission of Debasree Panda. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments