是否可以仅为特定容器设置 vm.overcommit_memory =1 ?

J. *_*ein 6 memory settings virtual-memory docker

因此,我正在运行一个在日志中显示此内容的容器:

警告 overcommit_memory 设置为 0!在内存不足的情况下,后台保存可能会失败。要解决此问题,请将“vm.overcommit_memory = 1”添加到/etc/sysctl.conf,然后重新启动或运行命令“sysctl vm.overcommit_memory=1”以使其生效。

我一生的大部分时间都在 Windows 中度过,我对 Linux 大约 80% 是一无所知的,据我所知,当设置此设置时,它会在系统范围内进行,这也会影响所有其他容器。我想这样做吗?

有没有办法只为推荐它的容器设置这个?我应该补充一下,如果有帮助的话,我正在 WSL2 模式下运行 docker 桌面。

更新:根据他的评论中的要求,我添加了这个问题所涉及的容器;它被称为Papermerge。

Joh*_*ald 8

有没有办法只为推荐它的容器设置这个?

不,vm.overcommit_memoryLinux 内核可调,在主机级别,而不是容器级别。值 0 比 1 更谨慎地过度使用。

Redis推荐1的理由是他们的后台保存机制。大内存数据库进程分叉自身以保存副本,突然Linux猜测它可能需要双倍的内存,并且不允许分叉。这对于 Redis 来说是不可取的,因为它不会改变内存,只需要一个写入快照的副本。

成功意味着容器在内存指标上表现良好,并且进程不会因内存不足而死亡或无法分叉。即使您将其设置为 1,也可能不太可能,但容量规划是您作为系统管理员的任务。