On Sat, Dec 07, 2019 at 03:12:57PM +0300, Victor Wagner wrote: > В Sat, 7 Dec 2019 12:40:23 +0300 > Eugene Berdnikov <b...@protva.ru> пишет: > > > > > > By default, Linux follows an optimistic memory allocation > > > > strategy. This means that when malloc() returns non-NULL there is > > > > no guarantee that the memory really is available. In case it > > > > turns out that the system is out of memory, one or more processes > > > > will be killed by the OOM killer. > > > > Мне что-то подсказывает, что выставление лимитов на память для > > процесса и лимитов на количество процессов позволяют свести оптимизм > > к величине, соответствующей объёму физической памяти. > > может проще сказать > > sysctl vm.overcommit_memory=1
В плане убиения оверкоммита да, проще. Но один лишь глобальный лимит позволяет одному раздувшемуся процессу съесть весь ресурс компьютера, не оставив ничего другим процессам. Это типичная аварийная ситуация. В плане гранулярности лучше лимиты на процессы и/или cgroups. Ну и для полноты картины полезно знать, что есть "vm.swappiness". Про него можно сообщить авторам дурацких идей по удалению свопа. -- Eugene Berdnikov