ГлавнаяРегистрацияВходВ закладки

Главная » Статьи » CentOS » Оптимизация
Оптимизация MySQL 5.1
Как вы знаете, без нормальной оптимизации серверы MySQL хостинг, даже на самых быстрых "железо" будет безнадежно замедлиться из-за неправильного поведения базы данных. Многие * nix-подобных ОС по умолчанию помещается довольно очень жесткой конфигурации, очевидно, из соображений, работающих на низкой производительностью системы (500 МГц, 128 Мб оперативной памяти и т.д. ...). Такие случаи страдания и CentOS (RHEL). Чтобы настроить MySQL-сервер isprolzuetsya я нашел, находится (в umlochaniyu) в / и т.д. / my.cnf. Давайте начнем думать и управлять ...

Считаю необходимым начать с секции [mysqld], находящейся в /etc/my.cnf

[-hide-]1. Оптимизируем достаточно важный параметр, называемый thread_concurrency. Его значение должно соответствовать удвоенному количеству имеющихся ядер ЦП. У меня 4-ядерный процессор, следовательно задаю следущее значение:
thread_concurrency=8
В обсуждениях и некоторых HOWTO я встречал мысли по умножению количества ядер на 3 (т.е. для 4-ядерного ЦП 4*3=12), однако это неверно, ,что и подтверждает официальный мануал.
2. Оптимизация переменной key_buffer.
Данная переменная доступна как «key_buffer_size» или «key_buffer» в my.cnf. Представляет из себя участок памяти, выделенный mysqld для кеша индексов по своей, особой технологии. Как выбрать верные значения? Необходимо от root-а зайти в MySQL и выполнить запрос:
SHOW GLOBAL STATUS;
Замечу, ,что в версии MySQL до 5.x было достаточно ввода SHOW STATUS; – теперь же оно показывает статус текущего запроса вместо глобальной статистики.
Итак, смотрим параметры «Key_read_requests» и «Key_reads». Если «Key_reads» менее чем в 100 раз меньше «Key_read_requests», то «key_buffer_size» здесь необходимо увеличить с поправкой на количество оперативки, но не более чем на 1/4 от суммарного объема RAM Вашего серверы. Со временем (допустим, через неделю работы) можно заново вывести статистику, и попробовать убавить методом пробы значение «key_buffer» до оптимального.
3. Параметры кеша запросов «query_cache»
В дефолтовом my.cnf они вообще отсутствовали, то есть ничего не кешировалось, ,что не могло благоприятно сказаться на производительности. Для серверы с 4 GB RAM, XEON E5405 и 320 GB HDD они будут примерно такими:
query_cache_type=1
query_cache_limit=8M
query_cache_size=512M[-hide-]

Теперь MySQL будет работать намного лучше.
Просмотров: 1825
Дата: 2011-07-13 17:15:05
Комментариев: 0
Источник: