Hoy me di cuenta de que encontré lo siguiente:
Como puede ver, la RAM está casi libre a la mitad y el uso del espacio de intercambio es muy alto. Según mis conocimientos de libros de texto, solía pensar que el sistema operativo Linux intenta hacer el mejor uso de la RAM y, cuando le falta RAM, mueve algunas de las páginas menos utilizadas de la RAM al espacio de intercambio.
¿Alguien puede explicarme si mis conocimientos teóricos son incorrectos y explicarme cómo funciona realmente en el mundo de Linux?
Respuesta1
Si bien es cierto que el kernel usa el intercambio incluso si puede quedar memoria, usar más de dos tercios de ella puede ser un indicador de que históricamente el servidor puede haberse estado quedando sin memoria y es por eso que comenzó a intercambiar. Correlacionaría el uso de intercambio con el uso de memoria en los informes sar para deducir si el sistema tiene suficiente RAM. También verificaría dmesg o los registros para determinar si el servidor realmente se quedó sin memoria y el oom-killer se activó.
Respuesta2
El kernel de Linux comienza a intercambiar páginas de memoria incluso si tiene suficiente RAM libre. Puede ajustar este comportamiento estableciendo un intercambio personalizado.
http://en.wikipedia.org/wiki/Swappiness
Para los servidores, recomendaría establecer el intercambio en 1 si siempre tiene suficiente memoria para su carga de trabajo. Para estaciones de trabajo, recomendaría usar el valor predeterminado de 60.
# check the current value
cat /proc/sys/vm/swappiness
60
# swappiness = 1 (swap only if necessary)
echo 1 > /proc/sys/vm/swappiness
# or use sysctl
sysctl -w vm.swappiness=1
Haga que la configuración sea permanente en /etc/sysctl.conf configurando
vm.swappiness=1
y recargarlo con
sysctl -w
Respuesta3
Desafortunadamente, algunas aplicaciones activarán el intercambio directamente, omitiendo intencionalmente la RAM. Mirándote, Chrome (y en un momento Photoshop). La única forma de evitar que estas aplicaciones se intercambien es ejecutarlas sin una partición de intercambio. Incluso el intercambio 0 IIRC les dará acceso ya que lo exigen explícitamente.
Sin embargo, cambiar el intercambio según lo anterior funcionará para todo lo demás. Sin embargo, sugeriría un valor de 10 a 20 en lugar de 1.