@KBBS

Каким образом я могу установить vm.overcommit_memory=1 и transparent_hugepage=never в Ubuntu, которая работает под WSL?

Здравствуйте.
Помогите решить проблему.

Дано:
Windows-10;
wsl2;
Docker Desktop.

Докер использует wsl.
В докере крутиться Redis.
Последний требует чтобы vm.overcommit_memory имело значение 1 и и отключённых transparent_hugepage.

Как я понимаю, эти значения я должен менять на хост системе. Т.е. в той, которая работает под wsl, которую использует Докер.
В принципе, на уровне контейнера это и не получается сделать.
Например, при попытке выполнить sysctl -w vm.overcommit_memory=1 пишет что-то вроде: файловая система доступна только для чтения.
На уровне хост системы всё выполняется.
sysctl -w vm.overcommit_memory=1 - работает.
echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled - работает.
Значения меняются и в контейнере отображаются изменённые значения. Что и подтвердило мой вывод, что их нужно менять в хост системе.

Проблема в том, что я их могу менять только вручную после запуска wsl-дистрибутива. Вот тем способом, который я указал выше.
Но я бы хотел как-то это дело автоматизировать.
Например, если я вношу в /etc/sysctl.conf запись vm.overcommit_memory=1 это никак не работает. Ощущение такое, что конфиг просто игнорируется.

Могу ли я вообще на уровне конфигурации менять эти настройки?
В принципе, меня бы даже устроил вариант скрипта, который отрабатывал бы при старте хост системы. Но я не нашёл способ сделать это.

Буду рад любым идеям.
Заранее спасибо.
  • Вопрос задан
  • 299 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы