OK, primeiro volte e certifique-se de que sua saída principal seja classificada por uso da memória ( RES
ident size) e, se não for, prossiga e atualize sua pergunta com a saída this . Então você realmente será capaz de ver o que está mastigando sua memória RAM.
Em segundo lugar, esqueça a coluna %MEM
. Esse bolo particular é uma mentira (devido ao arredondamento).
Concentre-se no tamanho RES
ident dos programas (e se você estiver preocupado com a permuta, o tamanho VIRT
ual) em vez disso - some aqueles colunas e os números irão corresponder ao que você está vendo em free
& top
output.
De olhar para a sua saída você tem um processo MySQL gigante (2.6G), e um processo Java gigante (2.0G) - eu suspeito que esses dois são seus co-conspiradores em mastigar toda a sua memória RAM O processo Java está pedindo que o MySQL faça está gerando grandes conjuntos de resultados ou dados intermediários).
O processo Java também tem um tamanho virtual de 25G (!!) - claramente está vazando memória internamente que o coletor de lixo não está liberando (ou talvez esteja lidando com um enorme conjunto de resultados, ineficientemente).
Eu apostaria que seu sistema provavelmente navega usando 4-5G de RAM em um "dia normal", e quando esses dois processos se juntam eles mastigam o resto (e então alguns) e você acaba em um Lugar Ruim
Descubra o que eles estão fazendo, corrija e seu problema desaparecerá.