因为重装 win10 系统,把 Docker 也重装了一遍,安装的时候提示系统支持 WSL 2,说是比 Hyper-V 启动更快,推荐使用。居然有好处,那就勾上这个选项吧。

启用 WSL 2 后,Docker 启动确实快了很多。

但是,今天发现,容器内的 Laravel 项目变慢了!

重装系统前,Laravel 项目 API 接口访问慢的时候也就几百毫秒,而现在却要 1.7 秒左右。追踪排查,我这个接口里用到的 SQL 也不复杂啊,就是一个简单的 Select 语句,放到 phpMyAdmin 里面执行也很快,确认不是 SQL 的问题。

在网上寻找答案,据说是 WSL 2 的文件系统没有 Hyper-V 支持得好,文件系统 I/O 会变慢。再想想,Laravel 项目一个简单的查询也要加载一堆的依赖包,而 phpMyAdmin 加载的文件就比较少。

最后,在 Docker 配置选项中把 WSL 2 取消,重新构建基于 Hyper-V 的容器,再次对比 API 接口访问速度,确实又变回了之前秒开的样子。

所以,慎重启用 WSL 2 !