亲宝软件园·资讯

展开

Mac 下 Docker 运行较慢的原因分析及个人见解

做冷欺花 人气:0
> 在mac 使用 docker 的时候,我总感觉程序在 docker 下运行速度很慢,接下来我一一分析我遇到的问题,希望大家能进行合理的讨论和建议。 ### 问题: 1. valet 下打开 laravel 首页耗时 **60ms**,docker 下打开耗时 **12s**? 2. 在解决了第一个问题的前提下,docker 下仍旧耗时 **2s**? ### 解决方法: 1. 第一个问题排查过程中发现是 DNS Lookup 时间太长导致的,搜索后发现,是因为使用了`.local`域名的原因,chrome 下就会存在解析时间过长,不过 safari 下没有这个问题。解决方法就是别在本地使用 `.local`的虚拟域名。 ##### 解决前: ![image-20200312182610066](https://tva1.sinaimg.cn/large/00831rSTly1gcrbjhgzzvj318u0pijv1.jpg) ##### 解决后: ##### 我们再来看一下 valet 下是什么情况: ![image-20200312182845593](https://tva1.sinaimg.cn/large/00831rSTly1gcrbm6jtpbj319s0m0wlb.jpg) 我们发现 TTFB 竟然只有 21ms,而 docker 下竟然有1.8 秒。这差距巨大的,要知道,1 s = 1000ms。 2. 在解决了第一个问题后我们发现了第二个问题,那么我找到官网说的docker 的缓存 `:cached`。我使用后,说实话,貌似毛用都没有。哈哈。 不过天无绝人之路,我突然想到,既然这个问题是因为 docker 挂载出的问题,那么我能不能在本地使用valet来解析网站,然后其他的 es、kafka 等组件我放到 docker 中。 尝试后看看结果: ![image-20200312183358476](https://tva1.sinaimg.cn/large/00831rSTly1gcrbrm7pxrj319e0u0dmj.jpg) 大家可以看到我这里使用的 valet 在本地解析网站后,连接的 docker 中的 es。ttfb 一下子就下来了。而我们再来看看 docker 下解析: ![image-20200312183518663](https://tva1.sinaimg.cn/large/00831rSTly1gcrbt0aa83j31950u0jy7.jpg) 其实差距还是蛮大的。 我们再来对比数字,**1780ms/60ms = 30 ,所以我们已经提速了 30 倍。** ### 讨论: > 大家有没有好的提速的建议?

加载全部内容

相关教程
猜你喜欢
用户评论