Como solucionar o que come memória?

1

Estou tentando descobrir por que o consumo de memória começou a aumentar constantemente no meu servidor durante as últimas horas. Eu tentei encontrar a causa no nível do aplicativo, mas sem sucesso. É por isso que agora estamos procurando uma possível causa de servidor. Eu não sou um profissional em administração de servidores, então qualquer ajuda é apreciada. A primeira memória comum foi consumida, agora o consumo de troca também está aumentando constantemente.

Meu servidor roda no CentOS 7 com o kernel 3.10.0-514.26.2.el7.x86_64

SOLUÇÃO
Por fim, o problema foi identificado como causado por uma biblioteca do servidor atualizada recentemente. A resposta aceita é um bom lembrete, na situação em que você está estressado pelo uso da memória, para rastrear o que foi alterado no sistema antes de o problema aparecer.

Algumas dicas que eu tenho procurado e que são muito úteis são descritas em Como descobrir quais processos estão levando toda a memória?

Estou listando abaixo os comandos que usei e podem ajudar nessa situação.

ps auwx --sort rss - processos classificados por uso de memória

ps-uf username - processos por um usuário

O uso / análise do

htop mostrou muitos processos pendentes de ativação de aplicativos no meu caso. Configurei o htop para gerar saída tanto de PID quanto de PPID, porque eu precisava correlacionar processos PPID a / var / log / cron .

free -m

    total        used        free      shared  buff/cache   available
Mem: 7565        6525         440          47         599         657
Swap: 8191        2612        5579

cat / proc / meminfo

MemTotal:        7747260 kB
MemFree:          253960 kB
MemAvailable:     498904 kB
Buffers:            6160 kB
Cached:           189076 kB
SwapCached:       467788 kB
Active:          5572588 kB
Inactive:        1258540 kB
Active(anon):    5498664 kB
Inactive(anon):  1185908 kB
Active(file):      73924 kB
Inactive(file):    72632 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       8388604 kB
SwapFree:        5686452 kB
Dirty:               104 kB
Writeback:             0 kB
AnonPages:       6168400 kB
Mapped:            68668 kB
Shmem:             48676 kB
Slab:             456672 kB
SReclaimable:     389064 kB
SUnreclaim:        67608 kB
KernelStack:        7232 kB
PageTables:       106848 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    12262232 kB
Committed_AS:   10244216 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       26276 kB
VmallocChunk:   34359705340 kB
HardwareCorrupted:     0 kB
AnonHugePages:   5191680 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       83968 kB
DirectMap2M:     8300544 kB

Como posso saber se existe algum problema em como o servidor está funcionando ou configurado em termos de uso de memória?

Desculpe se isso parece estúpido ou duplicado - tentei pesquisar perguntas semelhantes, mas não resolvi meu problema real.

Obrigado.

    
por yuga 19.07.2017 / 00:10

1 resposta

0

Em geral, você precisa coletar informações ao longo do tempo para ver o que está vazando na memória.
As questões-alvo fáceis são:

1) Quais mudanças recentes foram feitas no sistema?

2) O que foi atualizado?

3) Existe alguma informação ligando essas alterações a vazamentos de memória.

Depois disso, você pode usar os programas disponíveis no seu sistema. Eu não tenho um sistema Cent, mas deve haver um aplicativo de monitor de sistema que mostrará quanta memória os processos em execução estão usando.
O top pode ser usado para a mesma coisa na linha de comando. Em ambos os casos, você precisa monitorá-los e reconhecer o que está crescendo.

Se é um servidor e tem algo como o Nagios monitorando, você pode configurar um monitor de memória para diferentes aplicativos do sistema e mapear o uso de memória dos aplicativos.

Isso é tudo muito geral, mas dá algumas instruções para você ir.

Marcar

    
por 19.07.2017 / 00:46