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?