Windows 11、WSL2、Docker - 新 PC,php 网站速度非常慢的问题(针对本地开发)

P. *_*lla 6 php performance docker wsl-2 windows-11

我们是一个由 4 名开发人员组成的团队,致力于同一个项目。

我们的首席开发人员制作了一个启动所有容器的 docker 脚本。其中两个开发人员使用本机 Linux 和良好的桌面,并且网站在 2 秒内加载完毕。我的另一位同事使用与我相同的 Windows 10 笔记本电脑,但他在 5 秒内加载,而我在 18 秒内加载。

现在我买了一个新的(非常快)台式机,它的加载速度甚至更慢:22 秒!

最奇怪的是,所有容器似乎都没有使用我的大部分硬件。

我以前的笔记本电脑:i5 第 7 代,16GB RAM,widnows 10。18 秒网站页面加载。我的电脑:i7-12700KF,32GB RAM,Windows 11。22秒网站页面加载。

对于我的新 PC,我使用了 WSL2、ubuntu,并将项目代码存储在 ubuntu 中,我还在该 WSL 中启动了 docker 容器(只有我的 IDE 位于 wsl 之外)。我的 docker (4.7.1) 与我的 WSL 发行版集成。

我通过添加 .wslconfig 文件向 Docker 提供了额外的核心、内存和交换内存,但它没有改变任何内容。

在页面加载期间,我的容器几乎不使用任何 cpu 或 RAM,我的 php 容器使用 15 个可用 RAM 中的大约 1.5 GB RAM,其他容器几乎不使用任何东西。

我的 php 容器在后端请求的整个 22 秒内,CPU 使用率一直保持在 0.02%,然后在前端渲染、js 或其他任何操作期​​间,CPU 使用率在 1 秒内飙升至 70%,然后又回到 0.03% (另外 20 秒加载)。RAM 几乎没有显着移动。

容器

任务管理器 vmmem 在页面加载期间也几乎没有移动:

任务管理器

该脚本做了很多事情,但似乎主要使用这个composer.yml文件:

  version: '2'

services:
apache:
    container_name: onedocker_apache
    volumes:
        - ../..:/var/www/aragon

php7:
    container_name: onedocker_php7
    links:
        - apache:one.php7.aragon-erh.docker
        - mail:smtp.office365.com
        - mail:auth.smtp.1and1.fr
        - mail:smtp.sendgrid.net
    volumes:
        - ../..:/var/www/aragon
        - node_modules:/var/www/aragon/one/node_modules
        - ../../documents:/mnt/nfs/documents
    working_dir: /var/www/aragon/one
    extra_hosts:
        - excelserver.aragon-erh.com:10.40.0.70

db:
    container_name: onedocker_db
    ports:
        - "3306:3306"
    environment:
        - MYSQL_ROOT_PASSWORD=root
    volumes:
        - ../..:/var/www/aragon
        - db-data:/var/lib/mysql
    working_dir: /var/www/aragon

cache:
    container_name: onedocker_cache

mail:
    container_name: onedocker_mail
    image: mailhog/mailhog
    ports:
        - "8025:8025"
    environment:
        MH_SMTP_BIND_ADDR: 0.0.0.0:587
    user: root
    working_dir: /mailhog

ftp:
    container_name: onedocker_ftp
    image: stilliard/pure-ftpd
    restart: always
    ports:
        - "21:21"
        - "30000-30009:30000-30009"
    volumes:
        - "../../ftp/data:/home/aragon/"
        - "../../ftp/passwd:/etc/pure-ftpd/passwd"
        - "../Conf/ftp:/etc/ssl/private/"
    environment:
        PUBLICHOST: "localhost"
        FTP_USER_NAME: aragon
        FTP_USER_PASS: xxxxxxxxx
        FTP_USER_HOME: /home/aragon
Run Code Online (Sandbox Code Playgroud)

卷:数据库数据:驱动程序:本地node_modules:

切换到 Linux (mint) 修复了我在 Windows 上遇到的 docker 问题。使用相同的配置设置,网站加载时间从 22 秒缩短到 0.7 秒。

所以肯定是 Windows 问题,问题仍然存在。