Laravel、nginx、Docker、PHP - 负载测试,结果非常不令人满意

Laravel、nginx、Docker、PHP - 负载测试,结果非常不令人满意

我们正在 Hetzner 创建两个服务器 (https://www.hetzner.com/cloud)。

两者的参数: CPX51 - vCPU 16 AMD, RAM 32 GB

在一台服务器上,Ubuntu 22.04我们安装Docker并运行 PHP 应用程序 Laravel + nginx。nginx 镜像是https://serversideup.net/open-source/docker-php/

在另一个上,我们安装Artillery应用程序(https://www.artillery.io

我们的测试场景

config:
  target: "https://IP"
  tls: {
      "rejectUnauthorized": false
  }
  phases:
    - duration: 60
      name: "1000 on 60 sec"
      arrivalCount: 1000
    - duration: 60
      name: "2000 on 60 sec"
      arrivalCount: 2000
    - duration: 60
      name: "5000 on 60 sec"
      arrivalCount: 5000
    - duration: 60
      name: "10000 on 60 sec"
      arrivalCount: 10000
    - duration: 60
      name: "15000 on 60 sec"
      arrivalCount: 15000
    - duration: 60
      name: "20000 on 60 sec"
      arrivalCount: 20000
scenarios:
  - name: Main
    flow:
      - get:
          url: "/"

我们的结果是:

结果

我们认为结果不太好,尤其是读到这样的文章(https://reviewsignal.com/blog/2014/06/25/40-million-hits-a-day-on-wordpress-using-a-10-vps/)。我们的门户将托管在 Kubernetes 上,并在末尾使用 LoadBalancer。但是,我们想知道在这样的机器上哪些结果是好的,哪些结果是坏的。我们在任何地方都找不到这样的参考。我们正在寻找某种比较。你能帮我们吗?

答案1

您是否尝试过应用您“阅读”的文章中的任何 Nginx 配置,或者任何Nginx 高负载配置一般来说?

你是否也做过同样的事情Laravel 端

如果您正在使用数据库(我相信您正在使用),您是否了解过数据库供应商对其性能和调整的建议?

另外,你的测试没有多大意义,因为我不认为敲击你的端点的 IP 地址是你的应用程序的有效用例,即使它是一个单页程序或温泉它将包含图像、脚本、样式等,这些也应该下载。如果您的应用程序假设更复杂的逻辑、用户旅程等 - 您应该以 100% 的准确度复制真实的用户操作,并且您可能需要更高级的性能测试工具,例如Apache JMeter可以配置为像真正的浏览器一样运行

相关内容