gpt4 book ai didi

处理更多负载的 Docker 容器

转载 作者:行者123 更新时间:2023-12-02 19:10:36 26 4
gpt4 key购买 nike

我有一个关于 Docker 容器的问题。
在同一虚拟机中增加应用程序的容器数量意味着它将处理更多负载(大约 -> 容器数量的因子)?

假设我们没有明确地将资源分配给容器。我们在同一台机器上运行反向代理(或负载均衡器),它将以循环机制转发请求(到容器)。如果当前吞吐量是一个容器的 1000 tps,这是否意味着 3 个容器的吞吐量约为 3000 tps?

有人做过性能基准测试吗?任何人都可以分享链接吗?

最佳答案

问:在同一虚拟机中增加应用程序的容器数量是否意味着它将处理更多负载?

答:这取决于您当前的瓶颈在哪里。

如果您的虚拟机当前以 100% 的 CPU 工作负载运行,那么抛出更多容器显然不会增加您的吞吐量。相反,它可能会降低您的 tps因为需要将额外的 CPU 资源分配给新容器实例的新进程。

假设您的 VM 目前在低工作负载下运行,RAM 和磁盘 IO 不是问题。抛出更多进程可能仍然不意味着更好的性能,因为问题有时可能出在一段低效的代码上。例如。一个线程等待异步调用的响应或导致整个进程被锁定的原因,或者一个线程在等待锁定之前它可以继续进行,而另一个线程长时间占用锁定。 ETC...

您的应用程序的架构和现有的代码瓶颈也会在影响整体性能方面发挥巨大作用。

问:吞吐量会根据容器数量的因素大致增加吗?

不太可能。如果 1 个容器可以做 1k tps它并不总是等同于 n * 1k在哪里 n是容器的数量。这是因为如前所述,要考虑的变量太多了。

整体性能还可能取决于您使用的负载均衡器及其配置方式。

一般来说,仍然值得使用负载均衡器来编排更多容器来编排应用程序的传入请求。如果您不喜欢性能提升,那么我建议您进行代码分析,并可能还调查系统的负载并提出为什么会发生这种情况的理论。然后系统地逐一修复瓶颈,直到您对性能感到满意为止。

解锁一个瓶颈总是会打开另一个新的瓶颈。

关于处理更多负载的 Docker 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38964454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com