Запускаем скрипт mysqltuner.pl для автоматической диагностики MySQL
Хочу себе такие же кнопкиЧто вы получите, запустив mysqltuner.pl
- Быструю диагностику текущего состояния MySQL‑сервера.
- Понимание узких мест (память, кэш, соединения, запросы).
- Конкретные рекомендации по настройке параметров
my.cnf. - Умение сравнивать результаты после изменений и уверенно поддерживать производительность сайта на Битриксе.
1. Подготовка к запуску
| Шаг | Что делаем | Почему важно |
|---|---|---|
| 1.1 | Убедитесь, что у вас есть root‑доступ к серверу (или пользователь с правами sudo). |
Без прав доступа нельзя читать файлы конфигурации и статистику. |
| 1.2 | Установите Perl (интерпретатор) и необходимые модули (DBI, DBD::mysql). |
mysqltuner.pl написан на Perl, без него скрипт не выполнится. |
| 1.3 | Скачайте последнюю версию скрипта с официального репозитория. | Обновлённый скрипт учитывает новые версии MySQL и новые метрики. |
| 1.4 | Проверьте, что MySQL‑сервер запущен и доступен по локальному сокету или TCP‑портам. | Скрипт собирает статистику только из работающего сервера. |
Как установить Perl и модули (пример для Debian/Ubuntu):
sudo apt-get update
sudo apt-get install perl libdbi-perl libdbd-mysql-perl
Для CentOS/RHEL:
sudo yum install perl perl-DBI perl-DBD-MySQL
Скачивание скрипта:
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/mysqltuner.pl
chmod +x mysqltuner.pl
Совет: храните скрипт в каталоге
/usr/local/bin, чтобы запускать его откуда угодно.
2. Запуск скрипта
Самый простой вариант – без параметров:
./mysqltuner.pl
Скрипт запросит у вас логин и пароль MySQL‑пользователя с правами PROCESS. Если вы хотите передать их в командной строке (не рекомендуется в продакшене), используйте:
./mysqltuner.pl --host localhost --user root --pass your_password
Полезные параметры:
| Параметр | Описание |
|---|---|
--quiet |
Отключает интерактивный ввод, выводит только отчёт. |
--noout |
Не сохраняет лог в файл mysqltuner.log. |
--verbosity N |
Уровень детализации (0‑3). |
--checks N |
Отключить определённые проверки (например, --checks 1,2,5). |
Важно: При работе на VDS‑сервере от VDSina (https://vdsina.ru?partner=5095) вы можете добавить к команде
--host <IP>если MySQL слушает не наlocalhost.
3. Что показывает отчёт?
После выполнения скрипта вы увидите несколько блоков. Ниже – разбор самых часто задаваемых вопросов.
3.1 Общая информация
--- MySQLTuner 1.7.17 --------------------
[+] MySQL Version: 5.7.33
[+] OS: Linux 5.10.0-23-amd64
[+] Uptime: 12 days 4 hours 23 minutes
- Версия MySQL – помогает понять, какие параметры доступны.
- Время работы (
Uptime) – чем дольше, тем достовернее статистика.
3.2 Память
[+] Total memory: 4.0G
[+] Max MySQL memory usage: 2.1G (53.2% of total)
[+] Variables: key_buffer_size = 256M, query_cache_size = 0M, innodb_buffer_pool_size = 1.5G
key_buffer_size– кэш для MyISAM‑таблиц. Если у вас только InnoDB, можно уменьшить.innodb_buffer_pool_size– основной кэш для InnoDB. Рекомендация: 70‑80 % от доступной RAM, если сервер не делит ресурсы.
3.3 Соединения
[+] Max used connections: 45 (out of 151)
[+] Threads_connected: 12
[+] Threads_running: 3
max_connections– максимальное количество одновременных соединений. Если часто достигаете лимита, увеличьте, но учитывайте память.Threads_running– активные запросы. Если их много, ищите «тяжёлые» запросы вslow_query_log.
3.4 Кеши запросов
[+] Query cache is disabled.
[+] InnoDB buffer pool reads: 1.2M, reads from disk: 45K (3.8%)
- Отключённый query cache часто лучше для современных приложений (Bитрикс использует динамический контент).
- Низкий процент чтения с диска (
3.8%) говорит о том, что InnoDB‑кеш работает эффективно.
3.5 Рекомендации
Скрипт выводит строки вида:
[+] Increase innodb_buffer_pool_size to 2G
[+] Set max_connections to 250
[+] Turn on slow_query_log and set long_query_time to 1
Каждая рекомендация снабжена объяснением «почему». Запишите их, а затем проверьте, как изменится метрика после применения.
4. Как применить изменения
- Откройте файл
my.cnf(обычно/etc/mysql/my.cnfили/etc/my.cnf). - Добавьте/измените нужные директивы в секции
[mysqld]. Пример:
[mysqld]
innodb_buffer_pool_size = 2G
max_connections = 250
slow_query_log = 1
long_query_time = 1
- Перезапустите MySQL:
sudo systemctl restart mysql # Debian/Ubuntu
# или
sudo service mysqld restart # CentOS/RHEL
- Снова запустите
mysqltuner.plи сравните показатели. Если Max MySQL memory usage всё ещё превышает 80 % RAM, уменьшитеmax_connectionsилиinnodb_buffer_pool_size.
5. Частые ошибки и как их избежать
| Ошибка | Причина | Как исправить |
|---|---|---|
| «Perl not found» | Perl не установлен. | Установите perl через пакетный менеджер. |
| «Access denied for user» | Неправильный пользователь/пароль или отсутствие права PROCESS. |
Создайте пользователя: GRANT PROCESS, SELECT ON *.* TO 'tuner'@'localhost' IDENTIFIED BY 'pwd'; |
| «Can't read /etc/my.cnf» | Скрипт запущен без прав. | Запустите sudo ./mysqltuner.pl. |
| «InnoDB buffer pool size too big» | Память сервера ограничена (например, VDS с 2 GB). | Уменьшите innodb_buffer_pool_size до 1 GB или меньше. |
| «Query cache is enabled but MySQL version > 5.7» | В новых версиях MySQL query cache устарел. | Отключите: query_cache_type = 0. |
6. Автоматизация диагностики
Для постоянного мониторинга удобно добавить задачу в cron:
0 3 * * * /usr/local/bin/mysqltuner.pl --quiet --noout >> /var/log/mysqltuner.log 2>&1
Эта запись будет запускать скрипт каждый день в 03:00, сохранять вывод в лог‑файл и позволять вам отслеживать изменения во времени.
7. Связь с выбором VDS от VDSina
Если ваш сайт на Битриксе начинает «тормозить», правильный VDS поможет распределить нагрузку. На VDSina можно подобрать план от 150 руб/мес (для небольших магазинов) до Hi‑CPU (для высоких нагрузок). После выбора сервера сразу запускайте mysqltuner.pl, чтобы настроить MySQL под доступные ресурсы.
Практика для закрепления
- Скачайте и запустите
mysqltuner.plна тестовом сервере. Сохраните вывод в файлreport1.txt. - Определите текущий размер
innodb_buffer_pool_sizeи сравните его с рекомендацией скрипта. Запишите, нужно ли увеличить или уменьшить параметр. - Измените
max_connectionsсогласно совету скрипта, перезапустите MySQL и повторно запуститеmysqltuner.pl. Сравните значениеMax used connectionsдо и после. - Включите
slow_query_logи задайтеlong_query_time = 2. Выполните несколько типовых запросов Битрикса (например, загрузка каталога) и проверьте, какие запросы попали в лог. - Создайте задачу в
cron, которая будет писать отчёт в/var/log/mysqltuner_daily.logкаждый день в 02:30. Убедитесь, что файл обновляется, проверив его содержимое после первого запуска.
Выполнив эти упражнения, вы будете уверенно измерять и оптимизировать производительность MySQL, а значит, ваш сайт на Битриксе будет работать быстрее и стабильнее. Удачной диагностики!
CamZamZam - онлайн фото с вебкамеры с эффектами
Cartoon Network: игры с персонажами
Чат рулетка в 2026: будущие функции
Эксперт по доменным стратегическим решениям
Хостинг для e-commerce проектов
Как играть в слоты
Как настроить CDN для сайта на хостинге Host.bg
Как настроить SSL-сертификат для сайта на Host.bg
Как оптимизировать производительность сайта с хостингом Host.bg
Как выбрать правильный хостинг для вашего сайта
Какие бывают ЛОР болезни у детей
Кассовые терминалы с оплатой картами
LOL куклы витрина детская
Лучшие видеорегистраторы для водителей
Онлайн QR-код сканер
Онлайн-связь
Оптимизация производительности баз данных на хостинге Host.bg
Основы настройки веб-хостинга: что вам нужно знать
Партнёрская программа без блога: как получать трафик из Telegram
Профессиональные хитрости для пользователей хостинга Host.bg
Регистрация ИП в Москве для иностранных граждан
Сравнение хостинга Host.bg с другими провайдерами
Субтитры — нет, уши — включены: погружение в английский за 5 минут
Сумки с бусинами
Техника для строительства загородных трасс
ТОП-10 VPS для разработчика: рейтинг серверов под рабочие задачи
WordPress блог для бизнеса