首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >慢响应时间:码头集装箱中的Laravel 5.2

慢响应时间:码头集装箱中的Laravel 5.2
EN

Stack Overflow用户
提问于 2016-02-10 01:15:12
回答 2查看 7.3K关注 0票数 5

当在PHP-7对接器容器中运行Laravel5.2时,我在300ms - 400ms中获得响应时间。

这是非常慢的,尽管如果我只是在同一个容器上回音phpinfo(),响应时间是15ms - 50ms吗?是否有人在Docker容器中使用Laravel来体验这些慢响应时间?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 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 --forceartisan config:cache

  • HHVM 13 TCP 31 TCP (TCP端口9000)
  • HHVM 12 22ms 22 (Unix套接字)
  • PHP-7fpm42 TCP 73 TCP (TCP端口9000)
  • PHP-7FPM38 PHP 55 PHP (Unix )

哇哦!

HHVM with artisan optimisations + unix sockets: 8ms - 12ms

带有手工优化的PHP-7 FPM + unix套接字:38 PHP 42 PHP

看看带有优化和unix套接字的HHVM。非常快。

票数 4
EN

Stack Overflow用户

发布于 2018-05-30 11:56:04

为了让其他在谷歌上遇到这个问题的人受益,Docker现在支持用户引导缓存的卷。

不同的应用程序需要不同程度的一致性。完全一致性有时是必不可少的,并且仍然是默认的。但是,为了支持临时不一致是为提高性能而付出的可接受代价的情况,Docker 17.04 CE Edge为-v选项添加了新标志:

  • 一致性:完全一致。容器运行时和主机始终保持相同的挂载视图。正如上面所述,这是默认的。
  • 缓存:主机对挂载的看法是权威的。在容器中可以看到在主机上进行的更新之前,可能会出现延迟。

为我的Laravel应用程序启用缓存模式非常简单,就像更新docker-come.yml中的卷引用一样简单。

在此之前:

代码语言:javascript
复制
    volumes:
        - ./:/var/www

之后:

代码语言:javascript
复制
    volumes:
        - ./:/var/www:cached

在进行了这些更改并重新创建了我的容器之后,我看到的性能更符合我对非虚拟化本地服务器的期望。以前,一个简单的请求需要1.3s才能完成,然后下降到0.35s。尽管警告说,主机更改可能不会立即在容器中可见,但我还没有注意到传播方面的任何问题。

还有一个正在进行的关于Docker Mac FS性能的GH问题,还有一些有用的注意事项。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35305230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档