性能

Sidecar 性能取决于许多因素,例如:

  • 客户端连接数

  • 目标请求速率

  • 请求大小和响应大小

  • 代理工作线程数

  • 协议

  • CPU 核心数

代理过滤器的数量和类型,特别是与 telemetry v2 相关的过滤器。 延迟、吞吐量以及代理的 CPU 和内存消耗均作为这些因素的函数进行测量。

目录

CPU 和内存消耗

由于 sidecar 代理在数据路径上执行额外工作,因此它会消耗 CPU 和内存。截至 Istio 1.12.3,代理每处理 1000 个请求每秒大约消耗 0.5 个 vCPU。

代理的内存消耗取决于代理持有的总配置状态。大量的 listener、cluster 和 route 会增加内存使用。

由于代理通常不缓存通过的数据,请求速率不会影响内存消耗。

额外延迟

由于 Istio 在数据路径上注入了 sidecar 代理,延迟是一个重要的考量。Istio 向代理添加了身份验证过滤器、遥测过滤器和元数据交换过滤器。每个额外的过滤器都会增加代理内部的路径长度并影响延迟。

Envoy 代理在响应发送给客户端后收集原始遥测数据。收集请求的原始遥测所花费的时间不计入完成该请求的总时间。然而,由于工作线程忙于处理该请求,工作线程不会立即开始处理下一个请求。此过程增加了下一个请求的排队等待时间,并影响平均和尾部延迟。实际尾部延迟取决于流量模式。

在网格内部,请求先经过客户端代理,然后是服务器端代理。在 Istio 1.12.3 的默认配置(即带有 telemetry v2 的 Istio)中,这两个代理分别在基线数据平面延迟上增加约 1.7 毫秒和 2.7 毫秒的第 90 和第 99 百分位延迟。

调整 sidecar 资源配额(CPU 和内存)

集群维度

在服务网格的集群级别配置中,可以设置集群的默认 Sidecar 资源配额(CPU 和内存)。当用户添加服务时,此配置将作为 Sidecar 的默认资源配额使用。

具有平台管理权限的用户可以导航到服务网格详情页,并在 Configuration 标签下,通过更新 Cluster Dimension Configuration 来调整默认 Sidecar 资源配额。

指定服务

  • 添加新服务时,设置特定的 Sidecar 资源配额(CPU 和内存)。

  • 访问已添加服务的详情页后,导航到 Details 标签,并在 Sidecar 中更新 Sidecar 配置。