Estou usando Ubuntu 16 para rodar alguns serviços em containers docker.
o problema é quando o sistema é usado o consumo da memoria cresce exponencialmente ate o sistema no docker travar mas o servidor nao trava, ai devo esperar um pouco ou reiniciar o docker.
Mesmo limpando a memoria cache nao resolve.
veja a imagem
Aumenta essa swap ai cara… só 975M pó.
Isso dai é servidor?
Cria um log da RAM ai para agente ter os dados do que acontece com a maquina.
Isso dai está crescendo infinitamente? se for bug do software tem que ser corrigido pelo desenvolvedor do mesmo.
Já tento aumentar a swap para 31GB? a então deve ser bug, eu não sei qual é a memória necessária para rodar o seu programa, mas se está excedendo muito do nada, então tem que ser corrigido pelo desenvolvedor.
A menos que você tenha tantos requisições de usuários que o servidor não tenha hardware o suficiente, pode ser um leak de RAM de alguma aplicação.
Recomendo, se possível, usar um Ubuntu mais recente também. Não sei se você paga pelos patches ou em que contexto está a máquina, mas o Ubuntu 16.04, mesmo na melhor das hipóteses, já está quase batendo nos 10 anos. Considere uma migração eventualmente.
O negócio é investigar o que está fazendo o consumo da RAM aumentadar assim, não parece ser um comportamento normal.
@justin O que eu posso te sugerir caso esteja tendo um vazamento de memória como disse o @Dio.
Nesse caso só os desenvolvedores do programa pode resolver, a menos que ele seja software livre, mas se não for.
Então vc tem que escrever um programa ou um shell script, pode ser Bash, que ele monitore o consumo de memória do computador, e quando chegar próximo de travar ele mate o processo antes disto acontecer, e ai o programa deve ser reaberto para continuar as suas tarefas.
Parece que já existe programa que monitora a RAM e mata o processo, se vc usar ele, vc teria apenas que monitorar quando o programa foi fechado para o script shell reabrir ele novamente, e ai ficar nesse loop infinito ate sair a correção.
Isso tá parecendo um leak de memória, ve se resolve:
# Sincroniza a escrita no FS
sync
# Cache
echo 1 | sudo tee /proc/sys/vm/drop_caches
# inodes e estururas de diretórios em cache corrompidos
# Lembra que a gente sincronizou
echo 2 > /proc/sys/vm/drop_caches
# Limpa o cache de paginação
echo 3 > /proc/sys/vm/drop_caches
Se isso não resolver, é vazamento de memória e se resolver é um problema de acumulo de lixo de memória, eu chutaria algum serviço em Java
É se fechar o programa não limpa a memória, então eu não sei o que fazer. Só reiniciando, se o código script tiver que reiniciar o PC e quando o PC for reiniciado o docker automaticamente, então ficará muito demorado para reabrir o programa, não sei se isso vai servir.