Как повысить производительность контейнера WSL / docker на довольно распространенном ноутбуке?

У меня такая конфигурация ПК, которая должна иметь вполне нормальную производительность по сравнению с обычными ноутбуками:

ASUS TUF GAMING A15  
AMD Ryzen 7 4800H  
16GB RAM on 3200 MHz  
SSD  
64b Windows 10

Сначала я установил WSL2, и это было довольно медленно, и я понял, что OpenSuse поверх WSL, вероятно, меняет местами, потому что у процессора много ядер, но 16 ГБ было недостаточно для этого.
Итак, в основном я открываю .wslconfig и установить processors=2 и swap=0, это значительно улучшило производительность WSL, вероятно, перестал подкачиваться.

  1. Это была хорошая идея?

Итак, я довольно успешно использовал WSL, но через некоторое время мне нужно было установить VMware для тестирования некоторых функций, и он работал до первой перезагрузки виртуальной машины, и после этого я понял, что не могу использовать и WSL, и VMware на 1, потому что VMware хотела, чтобы я отключил в Windows некоторые опции, которые требовались WSL. (Думаю, с виртуализацией что-то было)

Но после использования VMware я снова использовал WSL и понял, что это намного медленнее. Я проверил изменения из git, я все перестроил, я вернулся к версиям, как и раньше, но все еще было намного медленнее, чем раньше. В то время мне нужно было начать использовать docker-контейнер (по разным причинам), сначала он работал довольно быстро, поэтому я не обращал особого внимания. Но потом я понял, что некоторые операции выполняются очень медленно, и я не знал, почему. Затем я понял, что это должна была быть VMware, поэтому я удалил ее, и WSL стал быстрее, только WSL, но медлительность в контейнере докеров осталась.

Когда я проверяю диспетчер задач, ЦП и диск кажутся полностью в порядке, а также с памятью. Думаю, док-контейнер, вероятно, не использует все доступные ресурсы? Задача выполняется 30 минут вместо 10 секунд, которые запускаются на аналогичном ПК напрямую, без контейнера докеров, это огромная разница ...

Перед запуском задачи в контейнере докера:  Performance  Процессы

При выполнении задачи в контейнере докера:  Performance  введите описание изображения здесь

  1. Как настроить VSCode, чтобы докер-контейнер использовал гораздо больше ресурсов и запускал задачу почти так же быстро, как без запуска в докер-контейнере?
    Я понял, что это может быть связано с процессом Antimalware Service Executable, который занимает около 5% ЦП при выполнении задачи и использует службу Microsoft Defender Antivirus Service. Может это проблема? Если да, то как добавить исключение для контейнера докеров или VSCode, который его запускает, наименее навязчивым способом? Отключение защиты в реальном времени только уменьшило использование ЦП на 5%, но не ускорило задачу контейнера.

Я позвонил docker stats, и он действительно практически не использует никаких ресурсов, см.  docker stats


person Lukas Salich    schedule 03.09.2020    source источник


Ответы (1)


Разрабатывайте в файловой системе linux / home / yourdir на WSL2

если вы разрабатываете в файловой системе Windows, например / mnt / c / yourdir,

Внутреннее преобразование формата файла между файлом Windows (nstc) и файлом linux (extf) друг в друга.

проверьте другую статью.

докер на wsl2 очень медленно

person ganadara    schedule 21.09.2020
comment
Посмотрим на это позже на этой неделе. - person Lukas Salich; 22.09.2020