我们正在 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可以配置为像真正的浏览器一样运行