减少ISTIO侧车的内存使用量

时间:2018-11-01 21:44:40

标签: istio envoyproxy

我们正在为其中一个项目评估ISTIO。在该项目中,我们有大约200个容器和大约200个服务。每个容器的副本可能设置为2。因此,总共可能有400个容器,因此有400台ISTIO侧车。

在默认设置下,每台ISTIO侧车的内存消耗都高达300Mbytes。对于400辆侧面汽车,这将为侧面汽车提供120Gbytes(300Mbutes * 400)的内存。这似乎比应用程序所需的内存要求还要高。

有两个观察结果

  1. 内存使用量似乎随着内核数量的增加而增加。我们正在尝试的系统上有88个内核。目前了解到每个内核大约需要1.5到2Mbuts。
  2. 内存使用量似乎随着服务数量的增加而上升。在我们正在进行的项目中,我们预计将提供约200种服务。每个服务似乎都占用3Mbytes。

在(1)上,我们(通过谷歌搜索)找到了一种解决方案。解决方法是将特使并发数设置为较小。

在(2)上,有什么解决方法吗?在我们的项目中,并不是每个容器都与其他每个容器/服务对话。给定的容器可以与一组目标服务进行对话(通常在5个左右)。给定集装箱的侧车能否为该集装箱使用的服务分配内存?

我想知道是否有人对ISTIO有类似的问题,以及他们如何解决内存消耗问题。

1 个答案:

答案 0 :(得分:2)

您是正确的,#2是一个问题。 Istio邮件列表上对此进行了一些讨论:https://groups.google.com/forum/#!topic/istio-users/gRP4roSnHtQ

最重要的是,当前的实现(其中每个服务都配置为可以与其他每个服务进行通信)是O(N ^ 2),它无法扩展。到目前为止,关于修剪sidecar配置的各种选项的讨论只有很少的(主要是内部的)早期讨论,但是我认为相对较早的领域可能会开始一些工作。

更新 Istio 1.1包括一个新的Sidecar配置资源,可用于此目的。