【发布时间】:2018-01-11 00:50:28
【问题描述】:
我正在使用 Laravel(中等静态网络)在 nginx 中运行服务器,例如,我在 1 分钟内同时使用 500 constant load 的用户(在那一分钟内不是分布式用户)。
得到这个错误:
unix:/var/run/php/php7.1-fpm.sock 失败 - 资源暂时 不可用
cginx.conf
worker_processes auto;
events {
use epoll;
worker_connections 1524; #in my case it should be 1024, but well..
multi_accept on;
}
http {
#with this I reduce disk usage a lot
client_body_buffer_size 10K;
client_header_buffer_size 1k;
large_client_header_buffers 2 1k;
reset_timedout_connection on;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
www.conf
pm.max_children = 500
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 64
Google 计算引擎的结果:
f1-micro (1 vCPU, 0,6 GB) - Is supporting 40 - 60 requests per second
g1-small (1 vCPU, 1,7 GB) - Is maintaining 80 request per second
n1-standard (1vCPU, 3,75 GB) - - Is maintaining 130 request per second
n1-standard-2 (2vCPU, 7,5 GB) - Is maintaining 250 request per second
.
.
n1-standard-16 (16 vCPU, 60 GB) - Is maintaining 840 request per second
最后一个是第一个通过测试,其余的将 Bad Gateways 错误从 200 个用户减少到 400 个
如果我用微型实例测试不是 30 秒内分布的 2000 个用户,那么很好,但不能同时发送请求。
从 2 核开始,CPU 级别显示非常好,与磁盘操作等相同。
所以经过大量测试后,我有一些问题:
1) 这正常吗?对我来说不是,需要16个核心来运行一个简单的网络是不正常的..还是压力测试太重而正常?
2) 那么,我错过了什么吗?谷歌是否以某种方式限制每秒请求?
3) 给定配置文件的正常参数是什么?
欢迎任何其他帮助
【问题讨论】:
-
laravel 压力测试不好。
-
@LawrenceCherone 但我认为错误来自 nginx 或 gcloud ..
-
GCE 小型/微型实例没有完整的 CPU 内核,并且 CPU 时间是通过一个系统分配的,该系统归结为“您每秒获得 X 个 cpu 份额,具有一定的突发性”,一旦您突破你的爆发限额,你将受到严重、痛苦的限制,事情将以新的和创新的方式失败。我强烈建议不要将它们用于几乎不完全空闲的 CPU。
-
是的,我不确定投诉是什么——如果您支付最便宜的计划,比名为“标准”的计划便宜几倍,您是否真的希望仍能收到与“标准”中的性能相同吗?这些测试似乎唯一可以确认的是,您的“中等静态站点”实际上在手头的计算资源方面效率很低。
-
@TrOnNe,如果任何答案有帮助,请考虑奖励赏金。截至 20 小时前,该问题已不再出现;除非您在接下来的几个小时内接受答案或奖励赏金,否则一半的赏金将失效。
标签: php laravel nginx google-compute-engine