Сегодня я видел, как MySQL / MariaDB перестает работать на CentOS VPS. Когда я проверяю статус, я получаю:
# service mysql status
ERROR! MySQL is not running, but lock file (/var/lock/subsys/mysql) exists
Я удаляю этот файл и перезапускаю службу. Но позже в тот же день MySQL снова будет отключен, и файл блокировки все еще будет там. Итак, что-то происходит, из-за чего MySQL умирает, но оставляет файл блокировки, который говорит мне, что это не чистый / плавный выход.
В прошлом, когда я видел, что файл блокировки существует, но служба не работает, это было причиной внезапной перезагрузки всего VPS. Но здесь дело обстоит не так, потому что мой VPS работает более 160 дней.
я заметил fail2ban
запретить несколько случайных попыток взлома сайта Wordpress на VPS. Таким образом, было довольно много трафика, пытающегося забить сервер здесь и там, пока они не были заблокированы автоматически.
ОБНОВЛЕНИЕ: после просмотра моих messages
log я вижу это:
Dec 1 14:06:42 localhost kernel: Out of memory: Kill process 25063 (mysqld) score 24 or sacrifice child
Dec 1 14:06:42 localhost kernel: Killed process 25063, UID 27, (mysqld) total-vm:773716kB, anon-rss:32300kB, file-rss:48kB
Значит, это означает, что MySQL просто перегружен запросами (вероятно, от httpd)?
Убийца OOM сработал, когда в системе не хватило ОЗУ и подкачки - mysqld
процесс был выбран в качестве его жертвы, вероятно, из-за сочетания большого использования оперативной памяти и относительно низкой активности ее оперативной памяти.
Либо отрегулируйте доступный размер пула буферов, чтобы MariaDB занимала меньше ОЗУ и не запускала убийцу OOM (что может снизить производительность), либо предоставьте системе больше ОЗУ или свопа.