因此,我正在运行一个在日志中显示此内容的容器:
警告 overcommit_memory 设置为 0!在内存不足的情况下,后台保存可能会失败。要解决此问题,请将“vm.overcommit_memory = 1”添加到 /etc/sysctl.conf,然后重新启动或运行命令“sysctl vm.overcommit_memory=1”以使其生效。
我大部分时间都在 Windows 上度过,我大约 80% 对 Linux 一无所知,据我所知,在设置此设置时,它会影响系统范围,这也会影响所有其他容器。我想这样做吗?
有没有办法只为推荐它的容器设置它?如果有帮助,我应该补充一下,我正在 WSL2 模式下运行 docker 桌面。
更新:按照他的评论中的要求,我正在添加这个问题所涉及的容器;它被称为 Papermerge。
不
vm.overcommit_memory
,是Linux 内核可调,在主机级别,而不是容器级别。值 0 比 1 更谨慎的过度使用。Redis推荐1的理由是他们的后台保存机制。内存中的大数据库进程分叉自己以保存副本,突然 Linux 猜测它可能需要将内存增加一倍,并且不允许分叉。对于不改变内存的 Redis 来说是不可取的,它只需要写快照时的副本。
成功将是容器在内存指标上表现良好,并且进程不会因内存不足而死亡或无法分叉。即使您将其设置为 1,也可能不太可能,但容量规划是您作为系统管理员的任务。