正在开发NGINX / PHP网站。 NGINX和PHP处理时间之间存在明显差异,我不知道如何诊断。
从NGINX服务器中提取JPEG很快。
ab -l -c 100 -n 10000 http://blah.com/a_40kb_file.jpg
每秒7,700个请求。 NGINX日志说,服务时间为2到8毫秒。
拉一个PHP主页是另一回事。这是一种简单的表单,没有任何图形,因此每个连接都代表一个页面。每次下载大约3kb。每个页面都不同,因为它包含形式随机的令牌。
ab -l -c 100 -n 10000 http://blah.com/
每秒900个请求。 NGINX日志显示服务时间介于15毫秒至250毫秒之间。没有从NGINX报告错误。 PHP-FPM抱怨达到最大pm.max_children。增加,直到没有更多错误为止。
PHP脚本在开始和结束时通过简单的microtime(true)
记录执行时间。这些表明:
调用一个页面,NGINX日志时间和PHP符文时间大致一致(大约1到2毫秒)。
在模拟负载下,NGINX时间耗费了时间,但PHP执行时间保持不变。
NGINX正在某处等待某事的发生,我不知道如何诊断。有任何工具/方法可用吗?
NGINX.CONF
worker_processes auto;
worker_connections 768;
Dev平台: 1个核心VM。 Vbox 6.0。来宾:Ubuntu 18.04。英特尔i5-6260U。