Лош начин за справяне с нещата :/proc
е файлова система само за четене, за да я модифицирате, можете да стартирате Docker в привилегирован режим, отколкото можете да я променяте след стартиране на контейнера.
Ако изпълнявате контейнера в привилегирован режим, можете да деактивирате THP, като използвате тези команди:
# echo never > /sys/kernel/mm/transparent_hugepage/enabled
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
Правилен начин :Уверете се, че използвате по-нови версии на Docker (надстройте, ако е необходимо). run
подкомандата има опцията --sysctl:
$ docker run -ti --sysctl net.core.somaxconn=4096 --rm redis:alpine /bin/sh
[email protected]:/# sysctl net.core.somaxconn
net.core.somaxconn = 4096
...
За съжаление :vm.overcommit_memory
в момента не е разрешено да се задава чрез --sysctl
параметър същото се отнася и за THP (transparent_hugepage), това е така, защото те не са с пространство от имена. По този начин, за да коригирате тези предупреждения в контейнер, работещ на Linux хост, можете да ги промените директно на хост. Ето свързаните проблеми:
- №19
- №55
Не ви е необходим привилегирован режим за правилния начин подход.