понедельник, 2 декабря 2013 г.

mysqltuner - диагностика MySQL

Не беда, eсли вы, не являетесь большим специалистом в области понимания тонкостей настроек MySQL. Специально для таких людей существует крайне небольшой скрипт на языке Perl — MySQLTuner. Программа анализирует статистику работы MySQL и выдает свои рекомендации по оптимизации настроек сервера.




Установка под Debian крайне проста.
apt-get install mysqltuner
 Чтобы данные анализа были более корректными, сервер MySQL должен 
проработать некоторое время в боевом режиме, по рекомендации самого 
MySQLTuner не менее 24 часов. Желательно запускать скрипт с 
пользователем root.
mysqltuner --user root --pass xxxxxx
 
После секундного раздумия программа выдает примерно следующую 
информацию. Нас интересуют строки, помеченные символами [!!] и секция 
Recommendations
 
 
Общие рекомендации в принципе можно пропустить, смотрим рекомендации по 
изменению переменных (Variables to adjust). Открываем файл /etc/mysql/my.cnf
 и изменяем указанные переменные в соответствие с рекомендациями 
MySQLTuner. При отсутствии особых познаний в тонкостях настройки, я 
просто увеличиваю указанные переменные в два раза, жду сутки и смотрю 
что скажет программа при следующем запуске. Для того, чтобы изменения 
вступили в силу нужно перезапустить MySQL. 
/etc/init.d/mysql restart
При последующих запусках особое внимание обращаем на строку 
с макимально допустимым потреблением памяти. 
[OK] Maximum possible memory usage: 702.5M (2% of installed RAM) 
Необходимо чтобы процентное соотношение не было слишком высоким. При 
опасном превышении MySQLTuner выделит строчку красным и выдаст 
предупреждение.
 
И еще пару рекомендаций по MySQL
Обязательно конфигурируйте InnoDB. 
Для лучшей производительности базы данных при работе с InnoDB 
рекомендуется настроить my.cnf для MySQL
 
Наибольшее внимание следует обратить на следующие параметры и примеры: 
 set-variable = innodb_buffer_pool_size=250M
 set-variable = innodb_additional_mem_pool_size=50M
 set-variable = innodb_file_io_threads=8
 set-variable = innodb_lock_wait_timeout=50
 set-variable = innodb_log_buffer_size=8M
 set-variable = innodb_flush_log_at_trx_commit=0 
 
 
set-variable = innodb_buffer_pool_size=780M
 Основной буфер - чем больше, тем лучше

set-variable = innodb_additional_mem_pool_size=20M
 Вспомогательный буфер на внутренние структуры, большой делать не имеет смысла. 
 
set-variable = tmp_table_size=32m 
 Размер временных таблиц рекомендуется увеличивать до 32М.

 Рекомендуется так же увеличивать join_buffer_size до 2М, 
  это существенно влияет на скорость выполнения ряда запросов. 
set-variable = join_buffer_size = 2M
 
 

Комментариев нет:

Отправить комментарий