Mac 下 Docker 运行 Laravel 程序很慢(PHP/Nginx)

本地环境:MAC docker(19.03.5) php(7.2) nginx

截取某次请求:

这个是线上的请求

线上请求很快,本地请求很慢,进来看详情,求解

这个是本地的请求
线上请求很快,本地请求很慢,进来看详情,求解

这个是本地php打印的日志

线上请求很快,本地请求很慢,进来看详情,求解

有没有大神给诊断一下

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 8
Summer

1. 关闭写入频繁的操作

是否安装了 Debugbar 并开启着?如果有的话关闭后再试试。

Mac 下 Docker 文件系统写入操作很频繁的话,速度会很慢,所以把写入的操作相关功能暂时关闭试试。

2. 打开 cache 标识

https://docs.docker.com/docker-for-mac/osx...

如:

docker run -v ./html:/var/www/html:cached nginx

docker-compose 的例子:

version: "3.4"
services:
  nginx:
    volumes:
      - ./html:/var/www/html:cached

或者试下 https://github.com/EugenMayer/docker-sync

参考:翻译:如何提高 Docker 在 Mac 下的文件读写速度?

1周前 评论
j475523225

@Summer
谢大佬 加了 cache 标识后 速度提升了很多 从之前 1~2 秒 提升到现在的 400-500ms

至于那个 docker-sync 后面我再试试

file

1周前 评论

建议php使用系统自带的,这样执行composer和安装扩展也会方便很多,如果nginx用的也是docker的话,可以更改fastcgi_pass,使用宿主机的php

fastcgi_pass docker.for.mac.localhost:9000; 
1周前 评论
j475523225 (楼主) 1周前
Lingkong (作者) 5天前
j475523225 (楼主) 5天前
白俊遥

@Summer @j475523225 加了 cache 后速度是提升了; 但是容易出现宿主机和 docker 中的代码不一致的问题; 调试起来会被折磨到怀疑人生; 还是 nfs 保平安吧;

5天前 评论
Summer 5天前
白俊遥 (作者) 5天前
Summer 5天前
j475523225 (楼主) 5天前

换 Ubuntu 吧 :grin:

5天前 评论
ouer1994 (作者) 5天前
j475523225 (楼主) 5天前
j475523225 (楼主) 5天前
ouer1994 (作者) 5天前
j475523225 (楼主) 4天前
ouer1994 (作者) 4天前

我 Mac 直接用 Valet

5天前 评论
j475523225 (楼主) 5天前

15款13的mbp(8+256)和i5-7500的黑苹果(16+256),同一套代码,前者都是600ms以上,黑苹果都是100ms左右,也是很懵

5天前 评论
j475523225 (楼主) 4天前

感谢大佬

加了 cached 标识后 速度明显提升很多 从之前 1~2 秒 提升到现在的 300-400ms

配置 docker-sync 后效果没有 cached 标识明显,而且很不稳定。大多数执行时间在 500-600ms,有些执行在 800-900ms

docker-sync 和 cached 标识一起使用,执行时间同单独设置 docker-sync 一样

file

file

1天前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!