El uso del espacio de intercambio de Linux no se libera

El uso del espacio de intercambio de Linux no se libera

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.

información relacionada