1.16.2. 加载测试结果
上游 Istio 社区负载测试网格由 1000 个服务和 2000 个 sidecars,带有 70,000 个网格范围请求每秒组成。使用 Istio 1.12.3 运行测试,生成以下结果:
- Envoy 代理每秒每 1000 个通过代理的请求使用 0.35 vCPU 和 40 MB 内存。
- Istiod 使用 1 vCPU 和 1.5 GB 内存。
- Envoy 代理对 90th percentile 延迟增加了 2.65 ms。
-
传统的
istio-telemetry
服务(在 Service Mesh 2.0 中默认禁用)用于使用 Mixer 的部署,每 1000 网格范围内请求每秒使用 0.6 vCPU 请求。数据平面组件(Envoy 代理)处理通过系统的数据流。Service Mesh control plane 组件 Istiod 配置 data plane。data plane 和 control plane 有不同的性能问题。
1.16.2.1. Service Mesh Control plane 性能
Istiod 根据用户发布的配置文件和系统当前状态配置 sidecar 代理。在 Kubernetes 环境中,自定义资源定义(CRD)和部署由系统的配置和状态组成。Istio 配置对象,比如网关和虚拟服务,提供用户授权的配置。要生成代理的配置,Istiod 从 Kubernetes 环境和用户授权的配置处理组合配置和系统状态。
Service Mesh control plane 支持数千个服务,分布到成千上万的 pod,它们的用户作者虚拟服务和其他配置对象数量类似。Istiod 的 CPU 和内存要求扩展,以及配置数量和可能的系统状态。CPU 消耗扩展有以下因素:
- 部署更改率。
- 配置更改率。
- 连接到 Istiod 的代理数量。
但这部分本质上是可横向扩展的。