Alguém sugeriu na sua conta cgroups
. Bem, tente buscar essa direção, pois ela pode fornecer:
- aplicado a um grupo de tarefas que você escolhe (portanto, não no sistema inteiro, mas nem por processo)
- os limites estão definidos para o grupo
- os limites são estáticos
- eles podem reforçar o limite de memória e / ou memória + swap
Algo assim pode aproximá-lo dos seus objetivos :
group limited {
memory {
memory.limit_in_bytes = 50M;
memory.memsw.limit_in_bytes = 50M;
}
}
Isto diz que as tarefas sob este cgroup podem usar no máximo 50M de memória e 50M de memória + swap, então quando a memória estiver cheia, ele não irá trocar, mas se a memória não estiver cheia e alguns dados puderem ser mapeado no swap, isso poderia ser permitido.
Aqui está um trecho da documentação da memória do cgroup :
By using memsw limit, you can avoid system OOM which can be caused by swap shortage.