Recibí alertas en uno de mis sistemas (RHEL6) que decían que tenía un uso elevado de espacio de intercambio.
Después de mirar la máquina virtual, puedo ver que el intercambio se utiliza por completo, mientras que tenemos memoria física más que suficiente disponible, por ejemplo:
[root@xxxxxxxxxx ~]# free -h
total used free shared buffers cached
Mem: 11G 5.3G 6.3G 2.6M 196M 560M
-/+ buffers/cache: 4.6G 7.0G
Swap: 4.0G 4.0G 21M
entonces mi pregunta es:
¿Significa que el sistema se quedó sin memoria física en algún momento y "tuvo que" usar estos 4 Gbs de SWAP adicionales? la memoria se liberó posteriormente, pero el intercambio sigue siendo alto.
y si ese es el caso, ¿hay alguna manera de "vaciar" ese swap?
al ejecutar unarribaen la máquina, filtrando por uso de intercambio, puedo ver algunos procesos usando ese SWAP (el java en la parte superior en particular con2,7 g)
top - 14:57:06 up 72 days, 19:54, 4 users, load average: 0.06, 0.02, 0.00
Tasks: 201 total, 1 running, 200 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.2%us, 0.9%sy, 0.0%ni, 97.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 12197860k total, 5598708k used, 6599152k free, 201704k buffers
Swap: 4193276k total, 4170820k used, 22456k free, 573636k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ SWAP COMMAND
9180 pcmc03 20 0 7428m 980m 9208 S 0.3 8.2 797:35.54 2.7g java
9474 pcmc03 20 0 3409m 999m 9.8m S 0.0 8.4 492:09.57 513m pmrepagent
9455 pcmc03 20 0 2702m 1.5g 3712 S 0.0 13.0 29:42.06 297m pmrepagent
9383 pcmc03 20 0 4362m 229m 1568 S 0.3 1.9 159:45.77 213m java
9494 pcmc03 20 0 2705m 108m 10m S 0.3 0.9 183:49.58 61m pmserver
7371 root 20 0 231m 69m 2104 S 0.0 0.6 360:27.50 60m prismd.pl
1730 root 20 0 117m 44m 920 S 0.0 0.4 33:45.09 46m rootmon
¿Significa que este proceso java tuvo que usar 2,7 g de swap en algún momento y mantuvo la reserva? Y si es así, ¿supongo que este sistema podría necesitar memoria adicional para evitar situaciones similares en el futuro?
avmstatno muestra ningún si/so.
muchas gracias
Respuesta1
Sí, parece que tenías poca memoria. No, no intentes liberarlo del intercambio. Si lo haces irá a la RAM. Sin embargo, puede valer la pena ver qué procesos están desperdiciando memoria y preguntarse si es necesario que existan.