Утилиты для оптимизации MySQL\MariaDB.

Рассмотрим утилиты для оптимизации и контроля производительности MySQL\MariaDB сервера. Некоторые из них известны широко, другие, к моему удивлению, администраторами используются редко…

1. При установке сервера БД, в директории /usr/share/mysql/ можно найти готовые конфигурационные файлы для разных конфигов сервера. Например владельцы VDS с 512 Mb памяти могут попробовать использовать отсюда конфиг my-small.cnf, либо, если его лимитов будет не достаточно, конфиг my-medium.cnf.

# ls -la /usr/share/mysql/my-*
-rw-r--r-- 1 root root 4920 ноя 15 2016 /usr/share/mysql/my-huge.cnf
-rw-r--r-- 1 root root 20438 ноя 15 2016 /usr/share/mysql/my-innodb-heavy-4G.cnf
-rw-r--r-- 1 root root 4907 ноя 15 2016 /usr/share/mysql/my-large.cnf
-rw-r--r-- 1 root root 4920 ноя 15 2016 /usr/share/mysql/my-medium.cnf
-rw-r--r-- 1 root root 2846 ноя 15 2016 /usr/share/mysql/my-small.cnf

2. На сайте tools.percona.com имеется доступ к генератору конфигов сервера БД. Если предустановленного конфига по какой-то причине оказалось не достаточно, можно авторизоваться на сайте и попробовать сгенерировать конфигурацию здесь.

3. mysqladmin — клиент для работы с сервером БД. Удобный инструмент, который позволяет без запуска консоли сервера БД работать с базами и настройками MySQL. Очень удобен для использования в скриптах.

4. mysqltuner.pl — известный скрипт для оптимиации сервера БД. Скачиваем его, запускаем, и получаем анализ текущей ситуации и рекомендации по увеличению конкретных параметров в конфиге. Для получения оптимального результата, имеет смысл запускать анализ после того как сервер БД проработал без перезапуска более 24-36 часов.

# wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
# chmod u+x mysqltuner.pl

# ./mysqltuner.pl

5. Известный в прошлом, но к сожалению, теряющий актуальность для последних версий сервера БД скрипт tuning-primer.sh. Однако некоторые администраторы всё ещё используют его в работе. Принцип работы со скриптом аналогичный — после запуска, скрипт анализирует параметры сервера БД и даёт рекомендации по их изменению.

# wget https://launchpadlibrarian.net/78745738/tuning-primer.sh
# wget https://launchpadlibrarian.net/251274960/5.7.patch
# patch -p0 -i ./5.7.patch
patching file tuning-primer.sh
Hunk #1 succeeded at 1277 with fuzz 1.
# chmod u+x ./tuning-primer.sh
 
# ./tuning-primer.sh

6. Утилита mytop. В CentOS устанавливается из репозитория EPEL. С помощью этой утилиты мы можем подключится к серверу БД нужным пользователем, при необходимости можем указать конкретную базу данных и посмотреть статистику по ней — какой запрос был сделан, к какой базе, сколько этот запрос выполнялся, от какого хоста, в каком состоянии запрос находится сейчас и т. п. Нужные опции утилите можно передать как через параметры запуска, так и через конфиг ~/.mytop. При необходимости, утилиту можно использовать в других скриптах, для этого у неё предусмотрен соответствующий режим работы.

# yum install epel-release
# yum install mytop

# mytop -u sysadmin_wtuser -p superpassword -d sysadmin_wtdbase

7. Утилита mtop. В CentOS ставится из репоитория rpmforge (он всё ещё жив частично, да). Аналогично с предыдущей утилитой, администратор может получить статистику по работе сервера БД, информацию о запросах к нему. Имеется возможность принудительно завершить нужный процесс, отфильтровать результаты только для определённого пользователя или хоста.

# wget http://repository.it4i.cz/mirrors/repoforge/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
# yum install rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
# yum install mtop
# yum install yum-utils
# yum-config-manager --disable rpmforge

# mtop --dbuser=root --password=superpassword

8. Утилита innotop. В CentOS устанавливается из репозитория EPEL. Отличный инструмент для анализа и работы с базами, которые используют InnoDB. Аналогично предыдущим утилитам, innodb позволяет получить информацию о запросах к базе, конкретных таблицах, статистику репликации, информацию о буферах InnoDB и т. п.

# yum install epel-release
# yum install innotop

# innotop -u root -p superpassword

И mtop, и mytop, и innotop имеют поддержку ввода команд, которые позволяют администратору использовать весь доступный функционал утилит. Список команд можно получить введя уже в запущенном приложении символ знака вопроса — ?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *