Movendo processos da memória SWAP para a memória RAM manualmente no Linux

De Wiki Hackstore

Observe quanto de swap está sendo usado e quanto de memória está livre:

# free -m

Se houver quantidade suficiente de memória RAM para comportar o conteúdo usado na SWAP, execute:

# swapoff -a && swapon -a

Caso não tenha memória RAM suficiente, pode ocorrer o erro abaixo:

# swapoff /dev/sda2
swapoff: /dev/sda2: Cannot allocate memory

Nesse caso, sincronize a memória para o disco, e depois faça uma limpeza no cache da RAM:

# sync && echo 3 > /proc/sys/vm/drop_caches

Depois tente mover a memória swap para a RAM novamente:

# swapoff -a && swapon -a


ATENÇÃO!! Jamais execute este procedimento em servidores de produção que rodem banco de dados (Oracle, MYSQL, PostgreeSQL) ou cache de qualquer espécie (varnish, squid, zimbra_cache) com estes serviços rodando. Pare os processos antes de realizar tal manutenção manual (marreta) do uso da memória ram.

Tal procedimento não deveria ser necessário pois teoricamente o Linux é bom em gerenciar a memória. Porém caso vc não tenha configurado seu sysctl, ou dimensionado o uso dos seus sistemas (Capacity Planning) tal solução pode salvar seu dia. ;)