MySQL часто вылетает - PullRequest
       16

MySQL часто вылетает

0 голосов
/ 15 ноября 2018

У меня есть дроплет в DigitalOcean, созданный с помощью Laravel Forge, и поскольку несколько дней назад сервер MySQL просто аварийно завершает свою работу, и единственный способ заставить его работать снова - это перезагрузить сервер (MySQL делает сервер не отвечающим).

Когда я набираю htop, чтобы увидеть список процессов, отображается несколько из /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysql.pid (в настоящее время отображается 33 из них).

Журнал ошибок больше 1 ГБ (да, я знаю!) Ипоказывает это сообщение сотни раз:

[Предупреждение] InnoDB: Сложно найти свободные блоки в пуле буферов (21 итерация поиска)!21 неудачная попытка сбросить страницу!Попробуйте увеличить размер пула буферов.Также возможно, что в вашей версии Unix fsync очень медленный или полностью заморожен внутри ядра ОС.Тогда может помочь обновление до новой версии вашей операционной системы.Посмотрите на количество fsyncs в диагностической информации ниже.Журнал ожидающих сбросов (fsync): 0;пул буферов: 0. 167678974 чтения файла ОС, 2271392 записи файла ОС, 758043 fsyncs ОС.Запуск InnoDB Monitor для печати дальнейшей диагностики на стандартный вывод.

Эта капля работала в течение 6 месяцев, но эта проблема началась только на прошлой неделе.Единственное, что изменилось в последнее время, - это то, что теперь мы отправляем еженедельные уведомления клиентам (только тем, кто подписан на него), чтобы они знали о некоторых событиях, происходящих на текущей неделе.Это довольно интенсивный процесс, потому что у нас несколько тысяч клиентов, но мы используем преимущества Laravel Queues для обработки всего.

Это проблема, связанная с настройками MySQL?

1 Ответ

0 голосов
/ 15 ноября 2018

Попробуйте увеличить innodb_buffer_pool_size в my.cnf

Рекомендация для выделенного сервера БД составляет 80% - если вы уже находитесь на этом уровне, вам следует рассмотреть возможность перехода к более крупному типу экземпляра.

...