restringe o uso da memória para evitar a troca

1

Eu tenho um SSD e 8GB de memória e nenhuma partição de swap. Meu uso normal nunca precisa de mais que 3-4GB. No entanto, de tempos em tempos, observei que alguns programas com vazamento de memória ainda podem congelar o sistema, tornando-o imediatamente inutilizável. Eu notei que um processo kswapd está rodando.

  1. O que o kswapd provavelmente está fazendo sem espaço de troca? Eu não quero que o sistema troque, nem para uma partição de troca nem para um arquivo de troca.

Em meus hábitos de uso, eu consideraria qualquer processo que causasse RAM total como prejudicial e preferisse que o processo fosse morto automaticamente, em vez de a troca ser necessária.

  1. Existe uma maneira de desabilitar a troca completamente (não apenas reduzir o swappiness) e forçar o Kernel a matar processos que levam, por exemplo. 50% de RAM?
por Freddi Schiller 05.04.2015 / 20:09

1 resposta

1

Note que ps (no meu Ubuntu 14.04.2) mostra "kswapd" como:

root        39     2  0 Mar23 ?        00:03:27 [kswapd0]  

O " [] " em torno do nome do processo indica que kswapd0 é uma parte do código do kernel que, por conveniência do sistema, está sendo executado como um processo.

kswapd não apenas gerencia a troca, mas também gerencia o fluxo de memória entre buffers, cache, disponível, etc.

Não ter espaço de troca impedirá a troca. Sem a troca, quando um hog de RAM aloca toda a memória, o próximo processo a solicitar RAM (hog ou não) receberá um erro OOM (Out Of Memory) e será interrompido. Note que não é necessariamente o hog de memória que será eliminado, apenas o primeiro processo para solicitar RAM quando não há nenhum (ou não há blocos de memória maiores que o pedido)

    
por waltinator 06.04.2015 / 16:59