Špatný způsob, jak věci řešit :/proc
je souborový systém pouze pro čtení, abyste jej mohli upravit, můžete Docker spustit v privilegovaném režimu, než jej můžete upravit po spuštění kontejneru.
Pokud kontejner běží v privilegovaném režimu, můžete zakázat THP pomocí těchto příkazů:
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
Správným způsobem :Ujistěte se, že používáte novější verze Dockeru (v případě potřeby upgradujte). run
dílčí příkaz má volbu --sysctl:
$ docker run -ti --sysctl net.core.somaxconn=4096 --rm redis:alpine /bin/sh
[email protected]:/# sysctl net.core.somaxconn
net.core.somaxconn = 4096
...
Bohužel :vm.overcommit_memory
aktuálně není povoleno nastavení pomocí --sysctl
totéž platí pro THP (transparent_hugepage), je to proto, že nemají jmenný prostor. Chcete-li tedy tato varování opravit v kontejneru běžícím na hostiteli Linux, můžete je změnit přímo na hostiteli. Zde související problémy:
- #19
- #55
Pro správný způsob nepotřebujete privilegovaný režim přístup.