Nginx 和 Traefik 的性能非常慢

问题描述 投票:0回答:1

我们有以下基础设施来部署 PHP 应用程序:

  • 运行 Nginx 作为代理的虚拟机
    • Docker Swarm 集群中的 3 个节点
      • 在此集群中部署了 Traefik 容器(因此我们有 3 个运行 Traefik 的容器,每个节点 1 个)

因此,当您尝试访问该应用程序时,您会访问我们的 Nginx 虚拟机,该虚拟机具有一个负载均衡器,可以选择这 3 个节点之一并向那里发送您的请求。

当您点击某个节点时,这些 Traefik 容器之一会将您重定向到应用程序容器。部署应用程序进程为每个节点生成一个容器,因此我们有 3 个容器运行我们的应用程序,Traefik 选择其中一个。

问题:这个结构太慢了。

我们有另一种结构,只有一个 Nginx 代理和一个节点的 Docker Swarm。我们的应用程序在 80 毫秒内运行。

在我们的新结构中,它具有负载平衡和非常好的 DevOps 功能,我们在 2 秒内启动了我们的应用程序

对于我们如何改进它有什么想法吗?当我们设置 Nginx 代理将请求发送到特定节点时,我们得到了 450 毫秒的响应时间,这仍然很慢。

docker performance nginx load-balancing
1个回答
0
投票

问题出在容器操作系统上:Alpine Linux。

他们有一个关于它的 Gitlab 问题:https://gitlab.alpinelinux.org/alpine/aports/-/issues/14381

有一篇关于这种缓慢性能的文章:https://www.linkedin.com/pulse/testing-alternative-c-memory-allocators-pt-2-musl-mystery-gomes/

我们将容器更改为使用 Debian 映像,现在性能正常。

© www.soinside.com 2019 - 2024. All rights reserved.