MySQL (InnoDB) отключается в одно и то же время каждый день
Итак, недавно я поместил большое обновление моего проекта на мой сервер Ubuntu 14.
Вплоть до сих пор это было стабильно, однако, так как толчок точно в 00:36 по Гринвичу каждый день MySQL убит!! Не идеально, так как нам нужно как можно больше времени безотказной работы. Я увеличил количество ошибок, чтобы узнать, смогу ли я поймать его в следующий раз.
Не связано с ресурсами, я не думаю...
Я проверил следующее:
- Ресурсы сервера. Ничего не скачет, он стабильный и более чем достаточно оперативной памяти, по крайней мере, 200 Мб свободного. Использование Scoutapp для отслеживания этого.
- Кроны не бегут в это время.
-
key_buffer_size
было 16M, я просто положил его до 32MB. Но не вижу ничего, что могло бы вызвать это.
Журнал ошибок
Однако я проверил журналы во время сбоя, и это то, что там:
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
Так значит ли это...?
Означает ли это, что движок InnoDB нуждается в настройке. Я понял, что переменные my.cnf нужно изменить, но это всего лишь предупреждения.
Fatal error: cannot allocate memory for the buffer pool
заставляет меня думать, что мне нужно установить размер пула буферов для InnoDB, который меньше, если так, как?
Кроме того, этого не происходило до обновления. Но VPS имеет только 512 МБ ОЗУ, и трафик растет, а сложность приложения особенно с новым обновлением.
Я не понимаю, почему это происходит в одно и то же время каждый день. Ubuntu запускает обновления или есть расписание на Ubuntu, о котором я должен знать, возможно, это использует память?
Спасибо
-Stefan
1 ответ
Я предлагаю вам проверить нижеприведенное на вашем сервере.
Работает ли какой-либо cron на сервере. Вы можете использовать файл журнала заданий cron, чтобы убедиться в этом. Файл журнала находится по пути: /var/log/syslog
Проверка средней нагрузки в это конкретное время также поможет вам, если в это время был запущен какой-либо другой процесс, потребляющий нагрузку. Вы можете проверить системный журнал в каталоге / var / log, чтобы отследить его.
Попробуйте уменьшить ваш key_buffer_size до 1 МБ и посмотрите, не выходит ли он из строя. Если сбой все еще происходит, обновление оперативной памяти должно быть последним вариантом.
Я также рекомендую вам запустить скрипт mysqltuner и сообщить мне результат.