Aumento súbito de uso de memória que não diminui

Há pouco mais de uma semana, examinei o gráfico de uso de memória no DigitalOcean e fiquei bastante surpreso:

O uso estava estável há mais de um ano. Reiniciei o container e o consumo voltou a cair, mas nas últimas horas subiu novamente ao nível anterior.

O que causa isso? Os comandos top e ps indicam que os principais responsáveis são processos do PostgreSQL. Aqui estão as informações do free:

$ free -mh
              total        used        free      shared  buff/cache   available
Mem:          7.8Gi       2.5Gi       142Mi       2.3Gi       5.1Gi       2.6Gi

Até não consigo acessar o droplet pelo console do DigitalOcean; ele cai devido a OOM (esgotamento de memória). Felizmente, configurei chaves SSH e consigo acessar a partir do meu laptop pessoal, então, neste momento, ainda tenho acesso ao droplet.

O que devo fazer? Estou com orçamento limitado, então redimensionar o droplet é minha última opção. Estou me perguntando se há algo mais que possa ser feito. Parece algo surgido do nada. Estou executando a versão 2.7.0.beta5.

O que, se houver algo, mudou recentemente? Você fez uma atualização?

O único salto vertical nos meus gráficos nos últimos 14 dias também ocorreu em 11 de maio, mas foi menos drástico, de 78% para 89%. Talvez tenhamos feito uma atualização naquela época?

Parece ser relacionado ao host, pois para mim o uso de memória diminuiu. A atualização de versão para a beta9 foi adicionada no dia 10, então provavelmente fiz uma reconstrução por volta dessa época (e baixei uma nova imagem, conforme mostra o uso de disco). Não me lembro de ter atualizado o host, mas é possível que tenha feito.


Você não tem swap?

Não, tenho executado a versão 2.7beta5 há algum tempo. Não fizemos nenhuma mudança há um bom tempo.

A razão pela qual não estou na versão mais recente é que houve preocupações com meu desenvolvedor de front-end após a última atualização que fizemos, pois ela introduziu algumas mudanças que quebraram o estilo dele (sou apenas um administrador de sistemas, não entendo desse tipo de coisa). Acredito que isso já tenha sido corrigido no Discourse, mas estávamos aguardando a próxima versão menor para atualizar.

O que poderia estar causando isso no host?

Redimensionar o droplet dobra nossa fatura — então realmente não quero fazer isso, mas pode ser a solução mais fácil.

A swap é a que veio padrão, não tenho certeza.

:thinking: e o que /sidekiq diz?

Se você adicionar swap, evitará os OOMs. Você não quer OOMs e também não quer muita atividade de paginação; caso contrário, o aumento no uso de memória pode ou não ser relevante. (Pode ser interessante, mas isso é outra questão.)

Recomendo executar
vmstat 5 5
ou algo similar para ver como está a atividade de paginação.

Além disso,
free -h
é mais útil que
free -mh
porque importa saber quanto swap ainda resta.