Por que alguns processos usam swap e outros não?

1

Eu experimento de tempos em tempos quando estou trabalhando pesado, que meus sistemas (Ubuntu 13.10) congelam. O Syslog diz que um processo teve que ser eliminado até a falta de memória.

Killed process 4693 (chromium-browse) total-vm:1386284kB, anon-rss:31688kB, file-rss:3424kB

Isso acontece mesmo que meu swap esteja praticamente vazio. Eu tenho 4GB de RAM e 4GB de swap.

Top diz:

KiB Mem:   3932056 total,  2828880 used
KiB Swap:  4079612 total,   332492 used,

Então, muito espaço disponível. Mas então descobri que alguns processos não estão usando swap. Eles parecem comer toda a minha RAM física, mesmo sem considerar trocar algumas páginas em disco. Eu usei a coluna SWAP "top" para verificar o uso de SWAP por processo.

Estes são, e. Navegador da Web do Chromium e VirtualBox. Outros, como o Firefox, o Netbeans, etc. estão trocando.

Então quem "decide" qual processo está trocando e quais não? Do meu ponto de vista, isso é feito pelo kernel, porque a partir da memória da perspectiva do aplicativo é a memória sem distinguir entre swap e RAM física. Isso é verdade ou o desenvolvedor do Chromium tem o aplicativo configurado para usar apenas RAM física?

Obrigado pela sua ajuda!

    
por Tim 21.03.2014 / 18:27

2 respostas

1

Eu acho que o seu "problema" é com o VirtualBox.

De acordo com o Manual do VirtualBox

  

Memória base

     

Isso define a quantidade de RAM alocada e atribuída à VM quando está em execução. A quantidade especificada de memória será solicitada a partir do sistema operacional do host, portanto, ela deve estar disponível ou disponibilizada como memória livre no host ao tentar iniciar a VM e não estará disponível para o host enquanto a VM estiver em execução.

Encontrei comentários semelhantes nos fóruns do VirtualBox (embora não tenham sido tão úteis).

Veja: link

Então eu estou supondo que o módulo do kernel virtualbox aloca memória livre para o convidado, mas não é educado o suficiente para informar o host. Assim, quando você olha para a RAM livre (com ferramentas como free -m ) você parece ter memória suficiente MAS ... porque o módulo do kernel não informa o sistema operacional host, o host não pode gerenciar adequadamente a troca e seus aplicativos então travam doe a falta de memória (livre ou swap).

Eu sugeriria que você arquivasse um relatório de bug, mas, eu suponho que ele seria fechado, pois "não será corrigido"

Do encadeamento nos fóruns do VirtualBox vinculados ao comentário do Tim:

  

Para responder à sua pergunta sobre se o VBox pode ou não usar swap, não, nada além do sistema operacional pode fazer isso. Troca não é memória que é realmente utilizável.

    
por Panther 21.03.2014 / 22:53
0

O kernel do Linux "decide" isso. Ele faz isso com um parâmetro ajustável chamado swappiness .

    
por Elliott Frisch 21.03.2014 / 18:35