Sync #15196 update perf test for 1.22 into Chinese (#15230)

This commit is contained in:
Wilson Wu 2024-06-03 19:26:05 +08:00 committed by GitHub
parent e6765a405e
commit eb342c31fa
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 22 additions and 18 deletions

View File

@ -29,10 +29,10 @@ Istio 致力于用最小的资源开销实现最大的便易性,旨在支持
Istio 的数据平面组件 Envoy 代理用来处理通过系统的数据流。控制平面组件如
Pilot、Galley 和 Citadel 负责配置数据平面。数据平面和控制平面有不同的性能关注点。
## Istio 1.21 性能总结 {#performance-summary-for-Istio}
## Istio 1.22 性能总结 {#performance-summary-for-Istio}
[Istio 负载测试](https://github.com/istio/tools/tree/{{< source_branch_name >}}/perf/load)网格包含了
**1000** 个服务和 **2000**Sidecar全网格范围内QPS 为 70,000。
**1000** 个服务和 **2000**Pod 在一套 Istio 网格中全网格范围内QPS 为 70,000。
## 控制平面性能 {#control-plane-performance}
@ -69,10 +69,10 @@ Kubernetes 环境和用户编写的配置文件。
根据上述因素来度量延迟、吞吐量以及代理的 CPU 和内存消耗。
### CPU 和内存 {#CPU-and-memory}
### Sidecar CPU 和内存使用情况 {#sidecar-cpu-and-memory-usage}
由于 sidecar 代理在数据路径上执行额外的工作,它需要消耗 CPU 和内存。
以 Istio 1.21 举例1000 QPS 会使用大约 0.5 vCPU。
由于 Sidecar 代理在数据路径上执行额外的工作,它需要消耗 CPU 和内存。
以 Istio 1.22 举例1000 QPS 对于 Sidecar 会使用大约 0.5 vCPU。
代理的内存消耗取决于它的总体配置状态。大量的监听器、集群和路由会增加内存使用量。
在启用了[命名空间隔离](/zh/docs/reference/config/networking/sidecar/)的大型命名空间中,
@ -91,33 +91,37 @@ Envoy 代理在向客户端发送响应后收集原始遥测数据。
此过程会增加下一个请求的队列等待时间,并影响平均延迟和尾延迟。
实际的尾部延迟取决于流量模式。
### Istio 1.21 的延迟 {#latency-for-Istio}
### Istio 1.22 的延迟 {#latency-for-Istio}
在网格内部,请求会依次遍历客户端和服务器端代理。在 Istio 1.21
的默认配置中(即带有遥测 v2 的 Istio两个代理分别在基线数据平面延迟的 90 和 99
分位延迟上增加约 0.182 和 0.248 毫秒。我们使用 `http/1.1` 协议的
在网格内部,请求先经过客户端代理,然后经过服务器端代理。
在 Istio 1.22 的默认 Ambient 模式(带 L4配置中
两个 ztunnel 代理分别在基线数据平面延迟的基础上为 90 百分位和 99 百分位延迟增加了约
0.17 毫秒和 0.20 毫秒。我们使用 `http/1.1` 协议的
[Istio 基准测试](https://github.com/istio/tools/tree/{{< source_branch_name >}}/perf/benchmark)获得了这些结果,
测试标准是每秒 1000 请求,负载为 1KB使用了 2、4、8、16、32、64 个客户端连接和 2 个代理 worker 并启用双向 TLS。
测试标准是每秒 1000 请求,负载为 1KB使用了 1、2、4、8、16、32、64 个客户端连接和 2 个代理 Worker 并启用双向 TLS。
注意:此测试是在 [CNCF 社区基础设施实验室](https://github.com/cncf/cluster)上进行的。
不同的硬件会给出不同的值。
<br><img width="90%" style="display: block; margin: auto;"
src="istio-1.21.0-nighthawk-90.png"
<p><h6 style="text-align: center;"> P90 延迟 vs 客户端连接 </h6></p>
<img width="90%" style="display: block; margin: auto;"
src="istio-1.22.0-fortio-90.png"
alt="P90 延迟 vs 客户端连接"
caption="P90 延迟 vs 客户端连接"
/>
<p><h2 style="text-align: center;"> P90 延迟 vs 客户端连接 </h2></p><br>
<br><br>
<p><h6 style="text-align: center;"> P99 延迟 vs 客户端连接 </h6></p>
<img width="90%" style="display: block; margin: auto;"
src="istio-1.21.0-nighthawk-99.png"
src="istio-1.22.0-fortio-99.png"
alt="P99 延迟 vs 客户端连接"
caption="P99 延迟 vs 客户端连接"
/>
<p><h2 style="text-align: center;"> P99 延迟 vs 客户端连接 </h2></p>
<br>
- `no_mesh` 客户端 Pod 直接调用服务器 Pod不存在 Sidecar。
- `istio_with_stats` 默认情况下,客户端和服务器的 Sidecar 都带有遥测配置。这是默认的 Istio 配置。
- `no_mesh`:客户端 Pod 直接调用服务器 PodPod 不在 Istio 服务网格中。
- `ambient: L4`:带有{{{{< gloss "Secure L4 Overlay" >}}安全 L4 覆盖{{< /gloss >}}的默认 Ambient 模式。
- `ambient: L4+L7`:默认 Ambient 模式,为命名空间启用了安全 L4 覆盖和 waypoint。
- `sidecar`:客户端和服务器 Sidecar。
### 基准测试工具 {#benchmarking-tools}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB