我们正在为其中一个项目评估 ISTIO。在这个项目中,我们有大约 200 个容器和大约 200 个服务。每个容器可能会在副本设置为 2 的情况下启动。因此,总共可能有 400 个容器,因此有 400 个 ISTIO 边车。
在默认设置下,每个 ISTIO 边车使用了 300Mbytes。对于 400 个边车,这将为边车产生 120GB (300Mbutes * 400) 的内存。这似乎比应用程序所需的内存要求还要高。
有两个观察
- 内存使用量似乎随着内核数量的增加而增加。在系统上,我们正在尝试,有 88 个内核。目前的理解是每个核心大约需要 1.5 到 2Mbutes。
- 内存使用量似乎随着服务数量的增加而增加。在我们正在进行的项目中,我们预计会看到大约 200 项服务。每个服务似乎占用了大约 3MB。
在(1)上,我们(通过谷歌搜索)找到了一个解决方案。解决方案是将特使并发设置为较小的数字。
关于(2),有什么解决办法吗?在我们的项目中,并不是每个容器都与其他容器/服务进行通信。给定的容器可以与一组目标服务(通常大约 5 个左右)对话。给定容器的边车是否可以为容器使用的服务分配内存?
我想知道是否有人对 ISTIO 有类似的问题,以及他们如何解决内存消耗问题。