El kernel de Linux intercambia la mayoría de las páginas de la memoria cuando ejecuto una aplicación que usa la mayoría de los 16 GB de memoria física. Una vez que finaliza la aplicación, cada acción (escribir comandos, cambiar áreas de trabajo, abrir una nueva página web, etc.) tarda mucho en completarse porque las páginas relevantes primero deben volver a leerse desde el intercambio.
¿Hay alguna manera de decirle al kernel de Linux que copie páginas del intercambio en la memoria física sin tocar manualmente (y esperar) cada aplicación? Ejecuto muchas aplicaciones, por lo que la espera siempre es dolorosa.
A menudo uso swapoff -a && swapon -a
para hacer que el sistema responda nuevamente, pero esto borra las páginas del intercambio, por lo que deben escribirse nuevamente la próxima vez que ejecute el script.
¿Existe una interfaz de kernel, tal vez usando sysfs, para indicar al kernel que lea todas las páginas del intercambio?
Editar: De hecho, estoy buscando una manera de hacer que todos los intercambios se intercambien en caché. (¡Gracias, Derobert!)
[PS serverfault.com/questions/153946/… y serverfault.com/questions/100448/… son temas relacionados, pero no abordan la cuestión de cómo hacer que el kernel de Linux copie páginas del intercambio de nuevo en la memoria sin borrar el intercambio.]