性能

边车的性能取决于许多因素,例如:

  • 客户端连接数量

  • 目标请求速率

  • 请求大小和响应大小

  • 代理工作线程数量

  • 协议

  • CPU 核心

代理过滤器的数量和类型,尤其是与遥测 v2 相关的过滤器。延迟、吞吐量以及代理的 CPU 和内存消耗被视作这些因素的函数来进行测量。

CPU 和内存消耗

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

代理的内存消耗取决于代理持有的总配置状态。大量的监听器、集群和路由会增加内存使用。

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

额外延迟

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

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

在服务网格内,请求需要经过客户端侧的代理和服务器侧的代理。在 Istio 1.12.3 的默认配置中(即使用遥测 v2 的 Istio),这两个代理对于 90th 和 99th 百分位的延迟分别会在基准数据平面延迟上增加约 1.7 毫秒和 2.7 毫秒。

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

集群维度

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

具有平台管理权限的用户可以导航到服务网格详情页面,并在 配置 选项卡下通过更新 集群维度配置 来调整默认的边车资源配额。

指定服务

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

  • 访问已添加服务的详情页面后,导航到 详情 选项卡并在 边车 中更新边车配置。