O que acontece quando o sistema operacional Linux está sem RAM e sem troca

23

O que acontece quando o sistema operacional Linux está sem RAM e nenhuma troca está disponível?

qwe123wsx
fonte
15
Seria ruim. Tente imaginar toda a vida como você a conhece parando instantaneamente e todas as moléculas do seu corpo explodindo à velocidade da luz. Reversão protônica total.
David

Respostas:

36

Quando o sistema operacional está sem RAM e não tem troca, ele descarta as páginas limpas. Ele não pode descartar páginas sujas porque precisaria escrevê-las em algum lugar primeiro. Isso causa falhas e desempenho ruim se houver RAM insuficiente para manter o conjunto de trabalho. Essa é uma das principais razões pelas quais você realmente deseja trocar - para que o sistema operacional possa tomar uma decisão melhor sobre quais páginas despejar.

Sem troca, o sistema fica sem memória virtual (a rigor, RAM + troca) assim que não tiver mais páginas limpas para despejo. Então terá que matar processos.

Ficar sem RAM é completamente normal. É apenas uma rotação negativa sobre o uso de RAM. Não ficar sem memória RAM também pode ser descrito como "desperdiçar memória RAM". Quando toda a RAM está em uso, o sistema operacional toma decisões inteligentes sobre o que manter na RAM e o que não. Sem qualquer troca, ele tem menos opções.

Com ou sem troca, quando a remoção de páginas não for suficiente, o sistema operacional começará recusando-se a permitir operações que exijam memória (como mmape fork). No entanto, às vezes isso não é suficiente e os processos precisam ser eliminados.

David Schwartz
fonte
4
+1 "A falta de memória RAM é completamente normal. É apenas uma rotação negativa sobre o uso da memória RAM. Não ficar sem memória RAM também pode ser descrito como" desperdiçando memória RAM "."
TheTurkey
Uma consulta relacionada. Você sabe o que acontece se eu tentar hibernar uma máquina Linux e não houver espaço de troca suficiente para armazenar os dados transitórios? Para de hibernar?
Prahlad Yeri
11
@PrahladYeri Isso está correto. Se você não possui uma partição de suspensão e não há troca livre suficiente para armazenar o conteúdo da RAM, não pode hibernar.
David Schwartz
unix.stackexchange.com/q/153585
GoFundMonica - codidact.org