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

Ответить