Skip to content

Commit 36594b8

Browse files
Istio scale - address Acrolinx suggestions
1 parent d555a7c commit 36594b8

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

articles/aks/istio-scale.md

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ ms.author: shalierxia
88
---
99

1010
# **Istio service mesh add-on performance**
11-
The Istio-based service mesh add-on is logically split into a control plane (`istiod`) and a data plane. The data plane is composed of Envoy sidecar proxies inside workload pods. Istiod manages and configures these Envoy proxies. This article presents the performance of both the control and data plane for v1.19, including resource consumption, sidecar capacity, and latency overhead. Additionally, it provides suggestions for addressing potential strain on resources during periods of heavy load.
11+
The Istio-based service mesh add-on is logically split into a control plane (`istiod`) and a data plane. The data plane is composed of Envoy sidecar proxies inside workload pods. Istiod manages and configures these Envoy proxies. This article presents the performance of both the control and data plane for revision asm-1-19, including resource consumption, sidecar capacity, and latency overhead. Additionally, it provides suggestions for addressing potential strain on resources during periods of heavy load.
1212

1313
## Control Plane Performance
1414
[Istiod’s CPU and memory requirements][control-plane-performance] correlate with the rate of deployment and configuration changes and the number of proxies connected. The scenarios tested were:
@@ -22,22 +22,24 @@ The Istio-based service mesh add-on is logically split into a control plane (`is
2222
- Tested with two network plugins: Azure CNI Overlay and Azure CNI Overlay with Cilium [ (recommended network plugins for large scale clusters) ](/azure/aks/azure-cni-overlay?tabs=kubectl#choosing-a-network-model-to-use)
2323
- Node SKU: Standard D16 v3 (16 vCPU, 64-GB memory)
2424
- Kubernetes version: 1.28.5
25+
- Istio revision: asm-1-19
2526

2627
### Pod churn
2728
The [ClusterLoader2 framework][clusterloader2] was used to determine the maximum number of sidecars Istiod can manage when there's sidecar churning. The churn percent is defined as the percent of sidecars churned down/up during the test. For example, 50% churn for 10,000 sidecars would mean that 5,000 sidecars were churned down, then 5,000 sidecars were churned up. The churn percents tested were determined from the typical churn percentage during deployment rollouts (`maxUnavailable`). The churn rate was calculated by determining the total number of sidecars churned (up and down) over the actual time taken to complete the churning process.
2829

2930
#### Sidecar Capacity and Istiod CPU and Memory
3031

31-
|**Azure CNI Overlay**| | | | |
32-
|-------------|-----------------------------|--------------------|----------------------|--------------|
32+
**Azure CNI Overlay**
3333
| Churn (%) | Churn Rate (sidecars/sec) | Sidecar Capacity | Istiod Memory (GB) | Istiod CPU |
34+
|-------------|-----------------------------|--------------------|----------------------|--------------|
3435
| 0 | -- | 25000 | 32.1 | 15 |
3536
| 25 | 31.2 | 15000 | 22.2 | 15 |
3637
| 50 | 31.2 | 15000 | 25.4 | 15 |
3738

38-
|**Azure CNI Overlay with Cilium**|||||
39-
|-------------|-----------------------------|--------------------|----------------------|--------------|
39+
40+
**Azure CNI Overlay with Cilium**
4041
| Churn (%) | Churn Rate (sidecars/sec) | Sidecar Capacity | Istiod Memory (GB) | Istiod CPU |
42+
|-------------|-----------------------------|--------------------|----------------------|--------------|
4143
| 0 |-- | 30000 | 41.2 | 15 |
4244
| 25 | 41.7 | 25000 | 36.1 | 16 |
4345
| 50 | 37.9 | 25000 | 42.7 | 16 |
@@ -46,14 +48,14 @@ The [ClusterLoader2 framework][clusterloader2] was used to determine the maximum
4648
### Multiple Services
4749
The [ClusterLoader2 framework][clusterloader2] was used to determine the maximum number of sidecars `istiod` can manage with 1,000 services. The results can be compared to the 0% churn test (one service) in the pod churn scenario. Each service had `N` sidecars contributing to the overall maximum sidecar count. The API Server resource usage was observed to determine if there was any significant stress from the add-on.
4850

49-
|**Sidecar Capacity**||
50-
|---------------------|---------------------------------|
51+
**Sidecar Capacity**
5152
| Azure CNI Overlay | Azure CNI Overlay with Cilium |
53+
|---------------------|---------------------------------|
5254
| 20000 | 20000 |
5355

54-
|**CPU and Memory**|||
55-
|------------------------|--------------------|---------------------------------|
56+
**CPU and Memory**
5657
| Resource | Azure CNI Overlay | Azure CNI Overlay with Cilium |
58+
|------------------------|--------------------|---------------------------------|
5759
| API Server Memory (GB) | 38.9 | 9.7 |
5860
| API Server CPU | 6.1 | 4.7 |
5961
| Istiod Memory (GB) | 40.4 | 42.6 |

0 commit comments

Comments
 (0)