VPS. Падает MySql на VPS

metalshop
6 років
0
Здравствуйте!
На Debian 7.11 периодически падает MySql
Приходится запускать его в ISPmansger в инструмены/сервисы.
Не могу найти лог, в котором можно понять что происходит и почему.
Подскажите пожалуйста, что посмотреть, как проанализировать ситуацию.
Сергей М.
6 років
0
Лог mysql обычно находится в директории /var/log/( mysql | mariadb )
Чаще всего проблема с нехваткой ОЗУ и не оптимальными настройками mysql
metalshop
6 років
0
Лог mysql обычно находится в директории /var/log/( mysql | mariadb )© Сергей М.

По этому пути ничего нет :(
Папка /var/log/mysql пуста
Сергей М.
6 років
0
Не факт что логирование включено, нужно смотреть файл конфигурации сервиса
Расположение файла лога можно поискать командой
# ps -faux | grep mysql
root      5264  0.0  0.0112684   972 pts/0    S+   10:58   0:00          \_ grep --color=auto mysql
mysql    30561  0.0  0.0113264  1532 ?        Ss   Май10   0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
mysql    3130239.433.744151802698604 ?     Sl   Май10 44334:08  \_ /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --open-files-limit=8192 --pid-file=/var/lib/mysql/web.dontsee.me.pid --port=3306

в выводе которой log-error=/var/log/mariadb/mariadb.log путь к файлу лога
metalshop
6 років
0
В конфиге раскомментарил несколько строк:

general_log_file = /var/log/mysql/mysql.log
general_log = 1

log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes

log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M

появилось куча логов.

А где можно почитать рекомендации по оптимизации настроек mysql?
Сергей М.
6 років
0
В сети достаточно много информации по настройке mysql, например: habr.com/post/108418/
rudenko
6 років
0
general_log_file = /var/log/mysql/mysql.log
general_log = 1
© metalshop

Этот параметр вам вряд ли нужен, так как записывает в лог все SQL запросы.


log_bin = /var/log/mysql/mysql-bin.log© metalshop

Бинарный лог тоже под вопросом - используется при репликациях и очень серьезных базах, где нужна возможность восстанавливать откатывать БД до опреедленной секунды, обычно пишется на отдельный диск для того, что б при падении БД можно было с точностью до секунды восстановить.

Я бы рекомендовал их отключить так как места на VPS не так много
conserabay
5 років
0
Недостаточно настраивать только mysql. Нужно настроить еще и апач (httpd.conf") соответственно памяти сервера. Описывать почему не буду, кому интересно читайте документацию.

Настройте правильно MaxClients.
Для этого:
1 Узнайте сколько памяти "пожирает" один процесс
# ps -ylC httpd | awk '{x += $8;y += 1} END {print "Average Proccess Size (MB): "x/((y-1)*1024)}'


Пример для 1024 Мб: Для апача отдаем половину -512

Получаем следующие значения:

Average Proccess Size (MB): 21.5185


Получается, что в среднем один процесс Apache потребляет 21 МБ. Соответственно в отведенном объеме 512 МБ мы можем запустить 24 процесса. (512/21=24)

Исправим файл конфигурации под новое значение:

<IfModule mpm_prefork_module>
    StartServers          3
    MinSpareServers       3
    MaxSpareServers       9
    ServerLimit         256
    MaxClients           24
    MaxRequestsPerChild 3000
</IfModule>


Не 200 как там стоит по умолчанию. Остальные настройки как для памяти 1024.

После внесения изменений в файл конфигурации не забудьте перезагрузить Appache:

# service httpd restart


Должно помочь, если не поможет - добавить SWAP
metalshop
5 років
0
Здравствуйте! Спасибо за помощь. Советы помогли, но частично. Всё равно стабильности не было, а недавно она пропала вовсе. Решил настроить VPS немного иначе.
Поскольку очень слабо разбираюсь в администрировании мне было проще начать всё с нуля, поэтому создал вторую VPS.
Старая: Debian 7.11, RAM: 6144 Мб, SSD: 70000 Мб, CPU: 2x2.8 Ghz, ISPmanager-Lite 4.4.10.30
Новая: Debian 9.1, RAM: 2048 Мб, SSD: 25000 Мб, CPU: 1x2.8 Ghz, ISPmanager Lite 5.189.0

Благодаря ISPmanager 5 удалось настроить веб-сервер в режиме FastCGI (Nginx + PHP-FPM) и перейти на PHP 7 (правда не для всех сайтов. один из-за старого движка остался на PHP 5.6). Сайтов всего 5 – 7 из которых ощутимую нагрузку могут давать только три. Работают они на CMS: ocStore 1.5.5.1.2, ocStore 2.3.0.2.3 и WordPress 5.1.1.

После переноса сайтов они заработали ощутимо быстрее, что подтвердили тесты в PageSpeed Insights. Но Mysql падает… :(
Например падал сегодня примерно в 9:50. Я его быстренько перезапустил через IPSmanager. Файл /var/log/mysql/error.log прикрепил.

Скрин "Ресурсы сервера" из ISPmanager тоже прикрепил.

Что ещё можно проверить или настроить? Проблема действительно в оперативной памяти? Можно заставить VPS стабильно работать с 2 гигами памяти или в любом случае лучше сменить тарифный план на 4 или 6 гигов?
cdn.adm.tools/forum_message/0491/25/Безымянный.png
Тема закрита.