DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Related

  • Performance Testing 101: A Beginner's Guide to Building Robust Applications
  • Load Testing Essentials for High-Traffic Applications
  • Microservice Proliferation: Too Many Microservices
  • Modes and Modality in Performance Testing

Trending

  • Fact-Checking LLM Outputs Programmatically: Building a Verification Layer That Catches Hallucinations
  • When Angular APIs Return 200 but the Frontend Is Already Failing Users
  • Context Is the New Schema
  • How AI Coding Assistants Are Changing Developer Flow
  1. DZone
  2. Software Design and Architecture
  3. Performance
  4. Istio Ambient Mesh Performance Test and Benchmarking

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.

By 
Debasree Panda user avatar
Debasree Panda
·
Aug. 12, 24 · Analysis
Likes (1)
Comment
Save
Tweet
Share
7.8K Views

Join the DZone community and get the full member experience.

Join For Free

Istio 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

  1. Load testing tool: Fortio
  2. Application configuration: Bookinfo Application
  3. Total requests fired: 1000 queries/second (QPS), 10 connections, and for 30 seconds
  4. Cluster configuration: Azure (AKS) clusters with 3 nodes
  5. Node configuration: 2 VCPU and 7GB memory for each node
  6. CNI used: Kube CNI and Cilium (We did not use Flannel because it was not working well with AKS.)

Note:

  1. We have kept all the applications and Fortio in different nodes.
  2. We have exposed the Rating microservice and NOT Details service to handle external traffic. Because the Details microservice is written in Ruby, it is unfit for handling higher QPS. We sent a load of 100 QPS and 1000 QPS to the Details service without Istio, and the p99 latency for 100 QPS is around 6 ms, but it goes up to 50 ms for 1000 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:

  1. Kube CNI 
  2. Kube CNI + Istio sidecar (mTLS enabled)
  3. Kube CNI + Istio Ambient mesh (mTLS enabled)
  4. Cilium CNI
  5. Cilium CNI + Istio sidecar (mTLS enabled)
  6. 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
Load Test Results for Kube CNI Without Istio

Figure 1: Kube CNI + Without Istio

Load Test of Kube CNI and Istio Sidecar (mTLS Enabled)

  • Observed (Median) P99 latency: 4.72 ms
Kube CNI + With Istio Sidecar (mtLS enabled)

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
Kube CNI + With Istio Ambient (mtLS enabled)

Figure 3: Kube CNI + With Istio Ambient (mtLS enabled)

Load Test of Cilium CNI Without Istio

  • Observed (Median) P99 latency: 4.5 ms
Cilium CNI + Without Istio

Figure 4: Cilium CNI + Without Istio

Load Test of Cilium CNI and Istio Sidecar (mTLS Enabled)

  • Observed (Median) P99 latency: 8.8 ms
Cilium CNI + With Istio Sidecar

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
Cilium CNI + With Istio Ambient

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:

  1. 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. 
  2. Regardless of the CNI used, the performance (p99 latency) of the Istio Ambient Mesh is 20% better than that of the Istio sidecar. 
  3. Combining Cilium and Istio (sidecar or Ambient) produces undesirable results. If you are looking for performance improvements, you should avoid this mix.
Ambient (desktop environment) microservice Testing Performance

Published at DZone with permission of Debasree Panda. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Performance Testing 101: A Beginner's Guide to Building Robust Applications
  • Load Testing Essentials for High-Traffic Applications
  • Microservice Proliferation: Too Many Microservices
  • Modes and Modality in Performance Testing

Partner Resources

×

Comments

The likes didn't load as expected. Please refresh the page and try again.

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook