MySQL (InnoDB) desliga a mesma hora todos os dias

4

Ok, recentemente, enviei uma grande atualização para o meu projeto no meu servidor Ubuntu 14.

Até agora tem sido estável, no entanto, desde o momento em que exatamente 00:36 GMT cada dia mysql é morto !! Não é ideal, pois precisamos de tanto tempo de atividade quanto possível. Eu ampliei o log de erros para ver se eu posso pegá-lo na próxima vez.

Não relacionado a recursos, não acho ...

Eu verifiquei o seguinte:

  • Recursos do servidor. Nada picos, é constante e mais do que suficiente RAM disponível ~ 200MB livre, pelo menos. Usando o Scoutapp para acompanhar isso.
  • Nenhum cron está sendo executado no momento exato.
  • O key_buffer_size foi de 16M e acabei de colocá-lo em 32MB. Mas não consigo ver nada que esteja causando isso.

Log de erros

No entanto, verifiquei os logs no momento da falha e é isso que está lá:

141123 00:36:47 mysqld_safe Number of processes running now: 0 
141123 00:36:47 mysqld_safe mysqld restarted
141123  0:36:48 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead. 
141123  0:36:48 [Warning] The syntax '--log-slow-queries' is deprecated and will be removed in a future release. Please use '--slow-query-log'/'--slow-query-log-file' instead. 
141123  0:36:48 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead. 
141123  0:36:48 [Note] Plugin 'FEDERATED' is disabled. 
141123  0:36:48 InnoDB: The InnoDB memory heap is disabled 
141123  0:36:48 InnoDB: Mutexes and rw_locks use GCC atomic builtins 
141123  0:36:48 InnoDB: Compressed tables use zlib 1.2.8 
141123  0:36:48 InnoDB: Using Linux native AIO 
141123  0:36:48 InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(137363456 bytes) failed; errno 12 
141123  0:36:48 InnoDB: Completed initialization of buffer pool 
141123  0:36:48 InnoDB: Fatal error: cannot allocate memory for the buffer pool 
141123  0:36:48 [ERROR] Plugin 'InnoDB' init function returned error. 
141123  0:36:48 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 
141123  0:36:48 [ERROR] Unknown/unsupported storage engine: InnoDB 
141123  0:36:48 [ERROR] Aborting

141123  0:36:48 [Note] /usr/sbin/mysqld: Shutdown complete

141123 00:36:48 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

Então isso significa ...?

Isso significa que o mecanismo InnoDB precisa ser configurado. Eu percebi que as variáveis my.cnf precisam ser alteradas, mas essas são apenas advertências.

Fatal error: cannot allocate memory for the buffer pool me faz pensar que preciso definir um tamanho de buffer pool para o InnoDB, que é menor, se sim, como?

Além disso, isso não estava acontecendo antes da atualização. Mas o VPS tem apenas 512mb de RAM, o tráfego está crescendo e a complexidade do aplicativo, especialmente com a nova atualização.

O que eu não entendo é porque acontece exatamente o mesmo todos os dias. O Ubuntu executa atualizações ou há um cronograma no Ubuntu que eu deveria saber, talvez esteja usando a memória?

Obrigado

-Stefan

    
por Stefan 23.11.2014 / 02:39

1 resposta

1

Sugiro que você precisa verificar o abaixo fornecido em seu servidor.

  1. Se algum cron está sendo executado no servidor. Você pode fazer uso do arquivo de log de tarefas cron para verificar isso. O arquivo de log está no caminho: / var / log / syslog

  2. A verificação da carga média nesse momento específico também ajudará se houver qualquer outro processo de consumo de carga iniciado nesse momento. Você pode verificar o syslog no local / var / log para rastreá-lo.

  3. Tente reduzir seu key_buffer_size para 1 MB e veja se ele ainda está sendo bloqueado. Se ainda estiver travando, atualizar a RAM deve ser a opção final.

  4. Também recomendo que você execute um script mysqltuner e deixe-me saber a saída.

por Jaison V John 14.02.2015 / 09:58