当在PHP-7对接器容器中运行Laravel5.2时,我在300ms - 400ms中获得响应时间。
这是非常慢的,尽管如果我只是在同一个容器上回音phpinfo(),响应时间是15ms - 50ms吗?是否有人在Docker容器中使用Laravel来体验这些慢响应时间?
发布于 2016-02-10 01:43:15
好了问题解决了。
在本地开发环境中,使用带有VirtualBox驱动程序的Docker1.10和安装到主机系统(即Boot2Docker、VM和OSX)的卷,性能非常糟糕,如上面所述的300ms - 600ms。
使用相同的配置,而不需要挂载卷20ms - 30ms响应时间。我的假设是,因为Laravel具有密集的磁盘I/O,因为它在每个请求上加载了大量文件,这会受到主机和VM之间VirtualBox共享文件夹的方式的影响。
问题不是码头或拉拉维尔,它是一个VirtualBox VM问题。
更新:
比较码头内不同的环境
注意:下面没有artisan optimize --force或artisan config:cache
哇哦!
HHVM with artisan optimisations + unix sockets: 8ms - 12ms
带有手工优化的PHP-7 FPM + unix套接字:38 PHP 42 PHP
看看带有优化和unix套接字的HHVM。非常快。
发布于 2018-05-30 11:56:04
为了让其他在谷歌上遇到这个问题的人受益,Docker现在支持用户引导缓存的卷。
不同的应用程序需要不同程度的一致性。完全一致性有时是必不可少的,并且仍然是默认的。但是,为了支持临时不一致是为提高性能而付出的可接受代价的情况,Docker 17.04 CE Edge为-v选项添加了新标志:
为我的Laravel应用程序启用缓存模式非常简单,就像更新docker-come.yml中的卷引用一样简单。
在此之前:
volumes:
- ./:/var/www之后:
volumes:
- ./:/var/www:cached在进行了这些更改并重新创建了我的容器之后,我看到的性能更符合我对非虚拟化本地服务器的期望。以前,一个简单的请求需要1.3s才能完成,然后下降到0.35s。尽管警告说,主机更改可能不会立即在容器中可见,但我还没有注意到传播方面的任何问题。
还有一个正在进行的关于Docker Mac FS性能的GH问题,还有一些有用的注意事项。
https://stackoverflow.com/questions/35305230
复制相似问题