【Docker】刚安装的Laravel,只输出一句话,为什么需要两秒多才能返回结果?

laravel在只输出一句话的情况下,需要两秒多才能返回结果。

本地环境是用Docker for Mac安装的php7, laravel版本是5.7

这是用debugbar 查看的结果

【Docker】刚安装的Laravel,只输出一句话,为什么需要两秒多才能返回结果?

这是php-fpm的慢日志

【Docker】刚安装的Laravel,只输出一句话,为什么需要两秒多才能返回结果?

回答

问题已解决,谢谢各位。
@to2false 的回答是正确的,问题出在Mac的volumn上,Mac上的容器请求主机的文件会有短暂延迟,而laravel即便只输出一句话也会加载上百个文件,这就导致laravel运行时间非常长,有时需要5s以上才能返回结果,简直不能忍。

最简单的办法是使用缓存,在-v参数后面添加:cached参数即可,例如:

docker run --name php71 -d -v /workspace:/workspace:cached php:7.1-fpm

cached参数的作用是把主机的文件缓存到容器中,容器会使用内部的缓存而不是主机上的文件,就不会出现问题了。

mac的docker volumn挂载有IO问题,这个问题谷歌一下,有一堆解决方案

你可以把路由缓存和配置缓存开启再试试。
每次请求都会重新加载配置文件和路由配置,可能会慢。

以上是 【Docker】刚安装的Laravel,只输出一句话,为什么需要两秒多才能返回结果? 的全部内容, 来源链接: utcz.com/a/76119.html

回到顶部