Nginx 和 Traefik 性能非常慢

Nginx 和 Traefik 性能非常慢

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

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

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

当你访问一个节点时,其中一个 Traefik 容器会将你重定向到应用程序容器。部署应用程序流程会为每个节点生成一个容器,因此我们有 3 个容器运行我们的应用程序,Traefik 会选择其中一个。

问题:这个结构太慢了。

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

在我们的新结构中,它具有负载平衡和 DevOps 的优秀功能,我们在我们的应用程序中2 秒

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

答案1

问题出在容器操作系统: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 映像,现在性能正常。

相关内容