Не беда, eсли вы, не являетесь большим специалистом в области
понимания тонкостей настроек MySQL. Специально для таких людей
существует крайне небольшой скрипт на языке Perl — MySQLTuner. Программа анализирует статистику работы MySQL и выдает свои рекомендации по оптимизации настроек сервера.
Установка под Debian крайне проста.
Установка под 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
Комментариев нет:
Отправить комментарий