
Подсистема Windows для Linux (WSL) — это новейшая функция от Microsoft, которая позволяет разработчикам запускать среду GNU / Linux непосредственно в Windows без изменений, без дополнительных затрат на традиционную виртуальную машину или установку с двойной загрузкой.
В WSL2 они значительно улучшили производительность, добавив новые функции, такие как управляемая виртуальная машина, полное ядро Linux и полная совместимость с системными вызовами.
Если вы включите и установите WSL-2 в Windows, в Docker-desktop можно будет использовать движок на основе WSL-2 для повышения производительности.
Docker Desktop использует функцию динамического распределения памяти в WSL 2, чтобы значительно снизить потребление ресурсов. Это означает, что Docker Desktop использует только необходимое количество ресурсов ЦП и памяти, в то же время позволяя выполнять задачи с интенсивным использованием ЦП и памяти, такие как создание контейнера, намного быстрее.
— https://docs.docker.com/docker-for-windows/wsl/
Динамическое выделение памяти и больше мощности процессора! Выглядит отлично! Но Docker на WSL-2 может выделить всю доступную память, что в конечном итоге приведет к нехватке памяти для ОС и других приложений.
Настройки ограничения CPU и оперативной памяти
На устаревшем внутреннем движке Hyper-V распределением CPU и оперативной памяти было легко управлять, что также возможно в WSL-2, но немного сложнее!
В моем сценарии я предпочитаю выделять только 4 ядра CPU и максимум 4 ГБ памяти .
Откройте Windows Terminal / CMD / PowerShell и выполните следующие команды:
# выключить все экземпляры wsl, такие как docker-desktop wsl --shutdown notepad "$env:USERPROFILE/.wslconfig"
Отредактируйте .wslconfig
файл с помощью блокнота и запишите эти настройки:
[wsl2] memory=4GB # Ограничивает память виртуальной машины в WSL 2 processors=4 # Заставляет виртуальную машину WSL 2 использовать два виртуальных процессора
Сохраните файл и перезапустите службу docker-desktop!
Настройка WSL-2 не ограничивается только ЦП и памятью; вы можете применить другие настройки. Подробнее об этом читайте здесь