Оптимізація налаштувань бази сайту Mysql за допомогою Mysqltuner

Mysqltuner — це програма, яка аналізує статистику роботи Mysql і дає рекомендації щодо оптимізації Mysql сервера. Простіше кажучи пише якісь готові настройки потрібно вписати в /etc/my.cnf, щоб ваш сайт рідше покладав сервер. На моєму VPS сервері оперативної пам’яті 512 Мб. Для такого сервера Mysqltuner досить корисна. Тож почнемо

Для початку потрібно запустити Putty (а якщо немає її, то встановити з будь-якого сайту). У ній прописуєте IP адреса і натискаєте «З’єднатися». Появітсья чорний екран, куди ви вписуєте логін і пароль для входу на сервер (зазвичай логін root і не лякайтеся, що в рядку password нічого не відображається).

Вхід в putty

rabota-v-putty

Після входу ви побачите # і в залежності від того, що у вас за ОС на сервері (Debian, Ubuntu, або CentOS) виконуєте наступні кроки

Завантажити скрипт можна наступним чином:

# Wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl

Якщо виникає помилка, тоді

Запускаємо з ключем -no-check-certificate:

# Wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl --no-check-certificate

Також, можна встановити його:

Debian / Ubuntu:

# Apt-get -y install mysqltuner

CentOS:

# Yum -y install mysqltuner

 

Тепер можна запускати Mysqltuner. Якщо ви хочете змінювати налаштування, то не бажано використовувати його рекомендації частіше раз на добу (щоб вони встигли вступити в силу)

Якщо проводилося скачування скрипта:

# Perl mysqltuner.pl

або

# Perl mysqltuner.pl --user root --pass password

Якщо проводилася установка:

# mysqltuner

або

# Mysqltuner --user root --pass password

Після запуску скрипт зробить аналіз і видасть багато інформації. Її можна почитати. але головне — це оптимальні настройки в розділі Recommendations-Variables to adjust:

-------- Recommendations ----------------------------------------- ------------ 
General recommendations: 
   Add skip-innodb to MySQL configuration to disable InnoDB 
   MySQL started within last 24 hours - recommendations may be inaccurate 
   Enable the slow query log to troubleshoot bad queries 
   Set thread_cache_size to 4 as a starting value 
   Increase table_cache gradually to avoid file descriptor limits 
   Your applications are not closing MySQL connections properly 
Variables to adjust: 
   key_buffer_size (> 679.0K) 
   query_cache_size (> = 5M) 
   thread_cache_size (start at 4) 
   table_cache (> 4)

(Потрібно уважно прочитати все, що помічені символами [!!] і розділ Recommendations)

Ці параметри зазначені після рядка  Variables to adjust  потрібно змінити, або вказати в файлі my.cnf. Якщо у вас Vesta CP, то можна зробити це через неї в розділі Сервер-mariadb-configure-ДОДАТКОВІ ОПЦІЇ.

Кожну рекомендацію, краще вносити по черзі і перевіряти працездатність Бази даних, щоб виключити помилки.

Дотримуючись його рекомендацій у мене вийшли наступні настройки для сервера MARIADB /etc/my.cnf:

[mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
symbolic-links = 0

skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 240K

#innodb_use_native_aio = 0
innodb_file_per_table

max_connections = 30
max_user_connections = 25
wait_timeout = 10
interactive_timeout = 50
long_query_time = 5

query_cache_size = 0
query_cache_type = 0
query_cache_limit = 3M
thread_cache_size = 4
performance_schema = OFF disable PFS
key_buffer_size = 3M
tmp_table_size = 20M
max_heap_table_size = 30M

# slow_query_log = 1
# slow_query_log_file = / var / log / mysql-slow-queries.log

[mysqld_safe]
log-error = / var / log / mariadb / mariadb.log
pid-file = / var / run / mariadb / mariadb.pid

#
# Include all files from the config directory
#
! Includedir /etc/my.cnf.d

Червоним я виділив те, що я вписав (ці настройки були відсутні)

Сервер зашурхотів швидше. На цьому все? 

Нижче представлені ті ж кроки налаштування, тільки через Putty для тих, у кого немає доступу до /etc/my.cnf через панель управління.

Розташування конфігураційного файлу my.cnf:

Debian / Ubuntu:

/etc/mysql/my.cnf

CentOS:

/etc/my.cnf

Після внесення змін до файл my.cnf потрібно перезавантажити Mysql-сервер:

Debian / Ubuntu:

# /etc/init.d/mysql restart

CentOS 6:

# /etc/init.d/mysqld restart

Centos 7

# Sysyemctl restart mariadb

Наступний аналіз і редагування бажано проводити не менше, ніж через добу.

Оптимізація налаштувань бази сайту Mysql за допомогою Mysqltuner
Оцініть статтю

Маєте власну думку? Поділіться з усіма!

Всі коменти проходять модерацію *