O kernel do Linux troca a maioria das páginas da memória quando executo um aplicativo que utiliza a maioria dos 16 GB de memória física. Após o término do aplicativo, todas as ações (digitando comandos, alternando áreas de trabalho, abrindo uma nova página da web etc.) levam muito tempo para serem concluídas porque as páginas relevantes primeiro precisam ser lidas novamente no swap.
Existe uma maneira de dizer ao kernel do Linux para copiar as páginas da troca novamente para a memória física sem tocar manualmente (e aguardar) em cada aplicativo? Eu executo muitos aplicativos, portanto a espera é sempre dolorosa.
Costumo usar swapoff -a && swapon -a
para tornar o sistema responsivo novamente, mas isso limpa as páginas da troca, portanto elas precisam ser gravadas novamente na próxima vez que executar o script.
Existe uma interface do kernel, talvez usando sysfs, para instruir o kernel a ler todas as páginas do swap?
Edit: Na verdade, estou procurando uma maneira de fazer todos os swap swapcached. (Obrigado derobert!)
[PS serverfault.com/questions/153946/… e serverfault.com/questions/100448/… são tópicos relacionados, mas não abordam a questão de como fazer com que o kernel Linux copie as páginas do swap de volta para a memória sem limpar a troca.]