处理问题的不好方法 :用
/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/shroot@9e850908ddb7:/# sysctl net.core.somaxconnnet.core.somaxconn = 4096...
不幸的是
:
vm.overcommit_memory当前不允许通过
--sysctl参数设置,这同样适用于THP(transparent_hugepage),这是因为它们没有命名空间。因此,要在Linux主机上运行的容器中修复这些警告,可以直接在主机上更改它们。这里是相关的问题:
- #19
- #55
您不需要特权模式即可采用 正确的 方法。



