docker中访问laravel项目很慢,非常慢,会是什么原因?
问题有些长,麻烦各位了!
我在win11系统下,安装的docker win版本,使用php容器+nginx容器搭建了一个laravel项目,项目很简单,就是laravel10版本刚下载好,之后修改了welcom的view页面,web的路由如下
视图文件内容如下
使用了文件目录挂载
在访问localhost时非常的慢,第一次可能要5-8秒,之后每次也在1-2秒左右,监听资源信息,cpu和内存都占用很小
我在nginx的主配置文件中增加日志记录
日志内容如下
其中$upstream_response_time,php处理耗时占总耗时的绝大部分,并且耗时很久
1,检查是否是DNS解析问题
在容器中下载了bind-tools,执行命令
time nslookup 到我的php容器,耗时为0.007秒
2,检查是否是php-fpm进程问题,于是进行了两次修改
第一次判断是监听地址问题,修改监听地址,原配置为
listen = 127.0.0.1:9000
后修改为
listen = 0.0.0.0:9000
无改善
第二次判断是子进程数量问题,修改相关配置,原配置为
修改配置为
无改善
3,于是考虑可能是文件挂载导致io访问问题,于是使用ai给出的命令进行测试
dd if=/dev/zero of=test.bin bs=1M count=100 oflag=direct
测试结果为
104857600 bytes (105 MB, 100 MiB) copied, 0.488233 s, 215 MB/s
速度很块,没有问题
4,检查是否是php性能问题
在php目录下创建test.php文件,内容为test ok
在php容器内执行命令
time php /var/www/html/test.php
返回
5,检查是否是Composer自动加载性能
在php目录下创建autoload_test.php文件,内容为
在php容器内执行命令
time php /var/www/html/autoload_test.php
返回
最后判断是框架问题,直接访问入口文件
time php /var/www/html/public/index.php
返回
耗时2秒多
最后判断是框架问题??
请问我的检查方式正确吗,是否有什么错误的地方导致遗漏问题,如果检查方式没有问题,为什么会这样?怎么能优化这个问题
推荐文章: