O uso do espaço de troca do Linux não foi liberado

O uso do espaço de troca do Linux não foi liberado

recebi alertas em um dos meus sistemas (RHEL6) dizendo que ele tinha um alto uso de espaço de swap.

depois de olhar para a VM, posso ver que a troca está totalmente utilizada, embora tenhamos memória física mais do que suficiente disponível, por exemplo:

[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

então minha pergunta é:

isso significa que o sistema ficou sem memória física em algum momento e "teve que" usar esses 4 Gbs de SWAP adicional. a memória foi liberada posteriormente, mas a troca permanece alta.

e se for esse o caso, existe uma maneira de "esvaziar" essa troca?

ao executar umprincipalna máquina, filtrando por uso de swap, posso ver alguns processos usando esse SWAP (o java no topo em particular com2,7g)

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

isso significa que esse processo java teve que usar 2,7g de swap em algum momento e manteve a reserva? e se sim, acho que este sistema pode precisar de memória adicional para evitar situações semelhantes no futuro.

avmstatnão mostra nenhum si/so.

muito obrigado

Responder1

Sim, parece que você estava com pouca memória. Não, não tente libertá-lo da troca. Se você fizer isso, ele irá para a RAM. No entanto, pode valer a pena ver quais processos estão desperdiçando memória e perguntar se eles precisam existir?

informação relacionada