Mac 下 Docker 运行较慢的原因分析及个人见解
在mac 使用 docker 的时候,我总感觉程序在 docker 下运行速度很慢,接下来我一一分析我遇到的问题,希望大家能进行合理的讨论和建议。
问题:
- valet 下打开 laravel 首页耗时 60ms,docker 下打开耗时 12s?
- 在解决了第一个问题的前提下,docker 下仍旧耗时 2s?
解决方法:
第一个问题排查过程中发现是 DNS Lookup 时间太长导致的,搜索后发现,是因为使用了
.local
域名的原因,chrome 下就会存在解析时间过长,不过 safari 下没有这个问题。解决方法就是别在本地使用.local
的虚拟域名。解决前:
解决后:
我们再来看一下 valet 下是什么情况:
我们发现 TTFB 竟然只有 21ms,而 docker 下竟然有1.8 秒。这差距巨大的,要知道,1 s = 1000ms。
在解决了第一个问题后我们发现了第二个问题,那么我找到官网说的docker 的缓存
:cached
。我使用后,说实话,貌似毛用都没有。哈哈。不过天无绝人之路,我突然想到,既然这个问题是因为 docker 挂载出的问题,那么我能不能在本地使用valet来解析网站,然后其他的 es、kafka 等组件我放到 docker 中。
尝试后看看结果:
大家可以看到我这里使用的 valet 在本地解析网站后,连接的 docker 中的 es。ttfb 一下子就下来了。而我们再来看看 docker 下解析:
其实差距还是蛮大的。
我们再来对比数字,1780ms/60ms = 30 ,所以我们已经提速了 30 倍。
讨论:
大家有没有好的提速的建议?
Mac 下 Docker 运行较慢的原因分析及个人见解的更多相关文章
- Mac 下 docker安装
http://www.th7.cn/system/mac/201405/56653.shtml Mac 下 docker安装 以及 处理错误Cannot connect to the Docker d ...
- Mac下docker搭建lnmp环境 + redis + elasticsearch
之前在windows下一直使用vagrant做开发, 团队里面也是各种开发环境,几个人也没有统一环境,各种上线都是人肉,偶尔还会有因为开发.测试.生产环境由于软件版本或者配置不一致产生的问题, 今年准 ...
- Mac 下安装运行Rocket.chat
最近花了一周的时间,复习了HTML.CSS.原生JS,并学习了Node.js.CoffeeScript.js.MongoDB,入了下门. 因为准备在Rocket.chat 上做二次开发,所以先下载和安 ...
- Mac下hadoop运行word count的坑
Mac下hadoop运行word count的坑 Word count体现了Map Reduce的经典思想,是分布式计算中中的hello world.然而博主很幸运地遇到了Mac下特有的问题Mkdir ...
- mac 下php运行bug
如下所说bug在window下没有,在mac下存在. mac下的php报如下错误: fopen("data.json") Error: failed to open stream: ...
- mac下docker中安装nodejs
一.首先下载docker并安装 https://download.docker.com/mac/stable/Docker.dmg 然后启动docker, 二.获取node最新镜像 输入来着node版 ...
- mac下docker使用笔记
安装docker https://docs.docker.com/mac/ 启动docker环境launchpad -> Docker Quickstart Terminal ## ...
- Mac下 Docker部署SpringBoot应用
一.安装Docker环境 使用 Homebrew 安装 macOS 我们可以使用 Homebrew 来安装 Docker. Homebrew 的 Cask 已经支持 Docker for Mac,因此 ...
- Mac下docker搭建lamp本地开发环境
1.先在Mac上下载docker:官网下载:下载地址(选择mac版本下载,可能速度较慢) DaoCloud下载:下载地址(速度较快,可能版本较低) 2.装完之后打开: 3.检查一下是否下载成功: $ ...
随机推荐
- 100)PHP,文件上传总代码整理
首先是我的目录关系: 然后我的html表单代码: <html> <head> <title>Form</title> <meta http-equ ...
- Python 装饰器 多装饰器同时装饰一个函数 多参数函数
装饰器是在不修改源代码的情况下,使用装饰器增加原函数的功能. 在软件开发中有一个原则——"开放-封闭",简单地说就是已经实现的功能不允许被修改,但可以被扩展. 封闭:已经实现的功能 ...
- poj 1659 Frog's Neighborhood
未名湖附近共有N个大小湖泊L1, L2, -, Ln(其中包括未名湖),每个湖泊Li里住着一只青蛙Fi(1 ≤ i ≤ N).如果湖泊Li和Lj之间有水路相连,则青蛙Fi和Fj互称为邻居.现在已知每只 ...
- SQL语言:DDL,DML,DCL,DQL,TCL
DDL(Data Definition Language)数据库定义语言 statements are used to define the database structure or schema. ...
- Steve Lin:如何撰写一篇优秀的SIGGRAPH论文
Lin:如何撰写一篇优秀的SIGGRAPH论文" title="Steve Lin:如何撰写一篇优秀的SIGGRAPH论文"> 英文原版 PPT下载:http:// ...
- java中的深拷贝
对象拷贝有时让我们忽视其重要性,又或者因为想当然而导致若干程序问题. 浅拷贝 浅拷贝即普通拷贝,即对要拷贝的对象进行复制.例如对于Entity类: class Entity{ int a; Strin ...
- 我的第一个Quartz代码
创建Maven项目 打开Eclipse->File->Project->Maven ->Maven Project直接下一步输入Group Id和Artifact Id , ...
- RROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2
RROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2 ...
- 从又一家外卖被Uber收购,看美团打车未来
别以为Uber在中国失利,连优步中国都被滴滴收购了,就认为Uber已经不行了.其实从全球范围内来看,Uber还是相当强势的--创始人的那些破事儿不算在内.此外,更重要的是Uber已经不单单是在打车业务 ...
- android activity 启动过程分析(source code 4.4)
说实话,android source code从2.3到4.4变化是蛮多的,尤其是media部分,虽然总的框架是没有多大变化,但是找起代码来看还是挺麻烦的.在android里面最受伤的是使用了java ...