Tengo una caja de Linux RAM de 8GB en la que se ejecutan 4 servidores tomcat. Uno de ellos está configurado en 3000MB de memoria (configuración jvm -Xms y -Xmx) y otros están configurados en 1500MB. La partición de intercambio también se establece en 8Gigs. Cuando inicio estos servidores, el uso del archivo de intercambio es bajo. Pero durante un período de días y durante ciertos momentos en que uno / todos los servidores están en actividad máxima, el uso de intercambio comienza a aumentar. Aquí hay una salida típica de sar -r.
kbmemfree kbmemused% memused kbbuffers kbcached kbswpfree kbswpused % swpused kbswpcad
48260 8125832 99.41 196440 2761852 7197688 1190912 14.20 316044
75504 8098588 99.08 198032 2399460 7197688 1190912 14.20 316032
Muestra 14.2% de intercambio utilizado actualmente. Lo curioso es que este% NUNCA disminuye . Continúa aumentando y llegando hasta 30-40% . Reiniciamos nuestros servidores semanalmente.
Supongo que el % swpused aumenta durante los períodos de actividad máxima y disminuye durante los períodos de baja actividad ... O al menos permanece constante. Parece que el sistema operativo nunca recupera el espacio de intercambio.
Salida de free: free -m total utilizado buffers compartidos gratuitos en caché Mem: 7982 7937 45 0 32 2088 - / + buffers / caché: 5816 2166 Swap: 8191 1163 7028
Así que hay al menos 2 g de Ram gratis. Entonces, la pregunta es ¿Por qué el espacio de intercambio continúa aumentando y el SO no lo reclama? O cómo depurar esto para descubrir qué está pasando ...