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.检查一下是否下载成功: $ ...
随机推荐
- 文本输入框input将输入转换为统一大小写
转载地址:http://blog.csdn.net/yieryi_/article/details/52078596 文本输入框input将输入转换为统一大小写,通常有两种方法:JS和CSS方法. 1 ...
- QLIKVIEW基础设置及初步了解
改变语言环境 开发工具条勾选出来 创建selection box 创建search box 编辑脚本 重加载数据 基本联动思路:table view tableview load FSUPPLIERI ...
- MS激活
亲测可用 国内博客 https://msguides.com/ 他是翻译的这个哥们的网页: https://msguides.com/
- 解决scoped 下confirm 样式问题
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-学习mock(7)
学习mock # learn_mock_7.py # 单元测试结合mock思路 import unittest from mock import mock from day_20200208_mooc ...
- 《内蒙古自治区第十二届大学生程序设计竞赛试题_G: 最大收益》
问题 G: 最大收益 内存限制:128 MB时间限制:1 S标准输入输出 题目类型:传统评测方式:文本比较上传者:外部导入 提交:87通过:23 返回比赛提交提交记录 题目描述 Elly的叔叔经营一家 ...
- 吴裕雄--天生自然 R语言开发学习:方差分析(续一)
#-------------------------------------------------------------------# # R in Action (2nd ed): Chapte ...
- DocumentFragment的相关用法
额,今天看了vue1.0关于模板渲染的知识,认识了DocumentFragment这个东西,它相当于一个节点容器,我们对他使用appendChild时,只有它的子节点会被插入进去,它本身不会插入进去, ...
- <BZOJ3032>七夕祭
水 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> ...
- ZooKeeper源码阅读——client(二)
原创技术文章,转载请注明:转自http://newliferen.github.io/ 如何连接ZooKeeper集群 要想了解ZooKeeper客户端实现原理,首先需要关注一下客户端的使用方式, ...