Você pode fazer o que o nik sugeriu e usar o swapoff . No entanto, existe outra maneira mais elegante de ajustar a "troca" ou a agressividade com que o kernel troca os programas para o disco em sistemas executando os kernels 2.6.
Houve debates acalorados nas listas de discussão do kernel do linux sobre a política que o kernel deve seguir em relação ao comportamento de troca . O resultado é que agora temos um patch no kernels 2.6 que nos permite ajustar esse comportamento em grande parte.
Observe que você precisa de privilégios de root para fazer isso, como faria para executar os comandos swapoff / swapon.
O valor atual de "swappiness" pode ser inspecionado no arquivo / proc / sys / vm / swappiness ou executando este comando sysctl :
sudo sysctl vm.swappiness
Os valores de "troca" podem variar de 0 (sem troca) a 100 (troca para disco o máximo possível). O Ubuntu é fornecido com o swappiness padrão definido como 60.
Para alterar isso para uma sessão, chame o sysctl novamente e passe um valor de troca para usar:
sudo sysctl vm.swappiness=30
Além livre , você pode, naturalmente, monitorar os efeitos de se fazer isso através do excelente htop ou iotop utilitários.
Se você gosta do que vê e deseja reter esse valor nas reinicializações, basta colocar "vm.swappiness = 30" no arquivo /etc/sysctl.conf .
$ sudo sysctl vm.swappiness
vm.swappiness = 30
$ sudo sysctl vm.swappiness=40
vm.swappiness = 40
$ sudo sysctl vm.swappiness
vm.swappiness = 40
$ sudo tail /etc/sysctl.conf
#net.ipv4.conf.all.accept_source_route = 0
#net.ipv6.conf.all.accept_source_route = 0
#
# Log Martian Packets
#net.ipv4.conf.all.log_martians = 1
#
# The contents of /proc/<pid>/maps and smaps files are only visible to
# readers that are allowed to ptrace() the process
# kernel.maps_protect = 1
vm.swappiness=30
Você pode jogar com valores diferentes até encontrar um que implique um nível aceitável de troca na sua máquina.
Lembre-se de que o material em troca foi colocado lá em um momento mais movimentado do que agora.
Você pode achar que os dados também estão na RAM - tendo sido carregados novamente para uso, mas não apagados do swap. O kernel faz isso para economizar tempo no próximo período ocupado - se os dados já estiverem copiados, ele poderá liberar a RAM que está usando, em vez de ter que gravar primeiro o disco. Portanto, a menos que você saiba que a máquina não precisará trocar novamente em um futuro próximo, forçar a liberação do espaço de troca pode não conseguir nada, exceto para diminuir as coisas um pouco mais na próxima vez que a troca for necessária.
Isso é gerenciado com base na exclusão na gravação, portanto, se a cópia na RAM for atualizada, os blocos no swap serão liberados.
Se o espaço de troca for necessário para outra coisa, que não será no momento, pois você tem bastante espaço livre, ele será liberado para esse uso.
Você não pode ver a quantidade de dados nesse estado (tanto em páginas baseadas em disco em áreas de troca quanto em RAM) na saída de
free
. Você pode vê-lo através do/proc
sistema de arquivos especial. Veja a saída decat /proc/meminfo
para aSwapCached
contagem.Outras duas razões para haver troca em uso quando há memória aparentemente disponível são
free
saída que provavelmente não é o caso aqui. ter um pedaço de RAM verdadeiramente não alocada, bem como a usada pelos buffers / cache de E / S.fonte
Lembre-se de que
free
é apenas um instantâneo do uso da memória. O resultado que você está vendo pode implicar que, em algum momento no passado, o sistema estava com pouca memória RAM, então o material residente na RAM foi trocado. Desde então, a RAM tornou-se livre, mas o material da troca não foi necessário, portanto ainda é mantido na troca, em vez de apenas sobrecarregar a RAM. Se for esse o caso, desativar a troca seria uma má ideia. Existem processos que podem exigir uma quantidade tão grande de RAM desde a última recarga?Além disso, convém verificar se você não tem uma restrição no tamanho máximo de residente definido via ulimit (geralmente em / etc / profile, mas talvez isso varie com as distribuições e pode ser definido por processo (por exemplo, em um script de inicialização) )
Finalmente, no Microsoft Windows, há relatos de problemas específicos com o Firefox sendo trocados para o disco, por exemplo, quando minimizados (por exemplo, http://joeabiraad.com/mozilla-firefox/control-your-firefox-ram-usage/113 ). Eu nunca ouvi falar disso nos sistemas GNU / Linux, mas pode valer a pena explorar.
fonte