Por que o Ubuntu usa swap quando há memória livre suficiente? [duplicado]

6

Durante a execução do Virtual Box, meu sistema está acessando muito o disco rígido e funcionando lentamente.

Quando eu verifiquei os recursos do sistema usando o Monitor do Sistema, ele mostra o uso do processador em 15%, o uso da RAM em 65% e o uso do swap em cerca de 50%.

Minha pergunta é por que o Ubuntu precisa usar o Swap quando há quantidade suficiente de memória principal disponível?

Editar -

Saída do comando free -

             total       used       free     shared    buffers     cached
Mem:       4075908    3056931    1018977          0       1944     308408
-/+ buffers/cache:    2746579    1329329
Swap:      4139004    1862551    2276453

Nota - A caixa virtual pareceu funcionar bem antes de eu atualizar meu 12.04 Precise para 12.10 Quantal . Agora é tão lento que é quase inútil.

    
por Kshitiz Sharma 02.01.2013 / 08:05

2 respostas

11

  

O parâmetro swappiness controla a tendência do kernel de se mover   processa fora da memória física e no disco de troca. Porque os discos   são muito mais lentos que a RAM, isso pode levar a tempos de resposta mais lentos   sistema e aplicações se os processos forem muito agressivamente retirados   memória.

swappiness can have a value of between 0 and 100
swappiness=0 tells the kernel to avoid swapping processes out of physical memory for as long as possible
swappiness=100 tells the kernel to aggressively swap processes out of physical memory and move them to swap cache 
     

A configuração padrão no Ubuntu é swappiness = 60. Reduzindo o padrão   O valor do swappiness provavelmente melhorará o desempenho geral de um   instalação típica da área de trabalho do Ubuntu.

Fonte: SwapFaq - Wiki do Ubuntu

Abra o terminal e cole-o antes de iniciar o VirtualBox:

    sudo sysctl vm.swappiness=10

Inicie a visualização e verifique se o uso da troca diminuiu, se for esse o caso, então no terminal, faça o seguinte comando:

    gksu gedit /etc/sysctl.conf

Ele pedirá sua senha, digite-a e um editor de texto aparecerá na tela, percorra todo o caminho e depois da última linha, adicione:

    vm.swappiness=10

Salve o arquivo e reinicie o computador.

Isso deve fazer o truque!

    
por user118126 02.01.2013 / 09:13
4

Mas você não tem memória suficiente. Na primeira coluna, a quantidade de memória total disponível é 4075908. A quantidade de memória realmente em uso para programas, excluindo o cache e os buffers, é 2746579. A quantidade de RAM no swap é 1862551.

Isso significa que a quantidade de memória realmente em uso é 2746579 + 1862551, que é igual a 4609130. Geralmente, bloqueios de memória e alocações completas para os programas serão trocados, sendo a maneira mais eficiente de fazê-lo.

A linha inferior é, você tem 4609130-4075908 ou um requisito de 533222 Mb de RAM sobre o que você tem fisicamente.

Dê uma olhada na quantidade de memória que você está alocando para as máquinas virtuais que você está executando no momento e quais são os requisitos de RAM de outros programas que você pode estar executando. Às vezes, menos é mais - se você reduzir a quantidade de RAM alocada para as máquinas virtuais, não haverá troca, e o desempenho será muito melhor.

    
por fabricator4 02.01.2013 / 10:29

Tags