Каким образом я могу установить 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 это никак не работает. Ощущение такое, что конфиг просто игнорируется.
Могу ли я вообще на уровне конфигурации менять эти настройки?
В принципе, меня бы даже устроил вариант скрипта, который отрабатывал бы при старте хост системы. Но я не нашёл способ сделать это.