MySQL Falha e falha ao reiniciar

2

O MySQL parece estar travando, normalmente no final do dia, mas não vejo por quê! Diz fora de memória, mas há um monte de RAM livre e sem espaço de troca sendo usado. Estou usando o Azure.

Aqui está o log:

Oct  3 20:42:20 GenyxLive kernel: [787828.711240] Out of memory: Kill process 53891 (mysqld) score 84 or sacrifice child
Oct  3 20:42:20 GenyxLive kernel: [787828.714081] Killed process 53891 (mysqld) total-vm:871780kB, anon-rss:58164kB, file-rss:0kB
Oct  3 20:42:20 GenyxLive kernel: [787828.731974] init: mysql main process (53891) killed by KILL signal
Oct  3 20:42:20 GenyxLive kernel: [787828.733525] init: mysql main process ended, respawning
Oct  3 20:42:20 GenyxLive kernel: [787828.974636] init: mysql main process (24975) terminated with status 1
Oct  3 20:42:20 GenyxLive kernel: [787828.974666] init: mysql main process ended, respawning
Oct  3 20:42:21 GenyxLive kernel: [787829.937186] init: mysql post-start process (24976) terminated with status 1
Oct  3 20:42:22 GenyxLive kernel: [787830.103158] init: mysql main process (25002) terminated with status 1
Oct  3 20:42:22 GenyxLive kernel: [787830.103194] init: mysql respawning too fast, stopped

Aqui está o gráfico do que está acontecendo:

Você pode ver um pico de cpu e, em seguida, o serviço mysql pára ...

Alguém pode me ajudar a descobrir o que está acontecendo?

Ubuntu 12.04

Azure Small (768 MB de RAM, 1 GHz de CPU)

EDITAR

Existe um cron job que é executado a cada 5 minutos, que apenas verifica novos domínios, etc. (usando o zpanel).

É um sistema operacional de 64 bits

Linux GenyxLive 3.2.0-48-virtual #74-Ubuntu SMP Thu Jun 6 20:02:55 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

free -lm result:

             total       used       free     shared    buffers     cached
Mem:           672        491        180          0         42        118
Low:           672        491        180
High:            0          0          0
-/+ buffers/cache:        330        341
Swap:            0          0          0

cat /proc/meminfo result:

MemTotal:         688348 kB
MemFree:          186788 kB
Buffers:           43956 kB
Cached:           120988 kB
SwapCached:            0 kB
Active:           335908 kB
Inactive:          84924 kB
Active(anon):     255976 kB
Inactive(anon):      296 kB
Active(file):      79932 kB
Inactive(file):    84628 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                16 kB
Writeback:             0 kB
AnonPages:        255924 kB
Mapped:            18568 kB
Shmem:               376 kB
Slab:              51788 kB
SReclaimable:      37052 kB
SUnreclaim:        14736 kB
KernelStack:        1344 kB
PageTables:         7632 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      344172 kB
Committed_AS:     967220 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       13192 kB
VmallocChunk:   34359723128 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       51136 kB
DirectMap2M:      735232 kB
    
por Adam 03.10.2013 / 23:07

1 resposta

2

Kernel OOM só entra em ação quando considera que os recursos estão realmente apertados ... então você deve estar ficando sem memória, mas o gráfico não faz muito sentido então.

O que free -lm mostra? Além disso, o que cat /proc/meminfo mostra?

Em termos de um gatilho para o problema, algum processo de manutenção ou outro trabalho do cron corre ao redor desta vez que pode estar fazendo consultas onde o mysql precisa manter tabelas temporárias na memória?

BTW ... isso é uma versão de 32 bits do sistema operacional? Apenas imaginando se sua memória fraca está esgotada.

EDIT 1   Está bem. Bem, o mysqld será o processo que mais consumirá memória, de modo que é mais provável que esteja sendo escolhido. Verifique sua configuração do apache para ver como os threads de trabalho que você está gerando ... cada um terá uma sobrecarga de memória e é possível que, quando mais spawn, você fique sem memória, já que não há espaço de troca. Verifique seu parâmetro MaxClients ... se você tiver mais de 50 (apenas uma estimativa), esse pode ser um bom lugar para procurar. Eu recomendo dar uma olhada no Ajuste de desempenho do Apache .

    
por 03.10.2013 / 23:35