Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Операционные системы » Unix » Тюнинг и оптимизация производительности MySQL
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
Bochkarev_D.S.
Модератор
Средний рейтинг: 4.53 | Оценок: 17
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Oct 2001
Место проживания: Альметьевск, Татарстан
Публикаций: 480
Статус: Bochkarev_D.S. в оф-лайне
Тюнинг и оптимизация производительности MySQL [сообщение #31032]

В теме http://www.netadmin.ws/forum/showth...=&threadid=3729 я сетовал на траблы с тормозами. Почти все удалось решить. Основная трабла была в корявом хаке для вывода самого популярного аттача и настроек MySQL.
Привожу свои мысли по итогам разбора полетов. (FreeBSD привязка)
Один из самых важных аспектов для производительности – написание заведомо правильных и адаптированных под конкретную задачу и среду приложений. Никакой тюнинг не спасет вас в случае бесконечного цикла в коде или таймаутов. Соcтояние MySQL можно отслеживать с помощью различных ключей утилиты mysqladmin (SHOW PROCESSLIST, SHOW STATUS) в сочетании с мониторингом всей системы утилитами top и ps. Для удобства можно использовать phpMyAdmin.
Условно можно выделить 3 группы проблем:
а) соединение клиента с сервером;
б) проблемы в самой базе;
в) проблемы дискового ввода/вывода.

Для начала, необходимо посмотреть параметры, заданные по умолчанию в MySQL при компиляции. Для этого можно воспользоваться готовым программным обеспечением (phpMyAdmin), либо помощью утилит имеющихся в системе. В командной строке наберем
#mysqladmin –p variables, или запишем сразу в файл
#mysqladmin –p variables > temp.txt (опция p указывает на необходимость ввода пароля)
Переменные, которые заслуживают пристального внимания:
max_connections – число одновременных соединений разрешенное сервером;
table_cache – буфер хранения данных наиболее частых обращений;
key_buffer – буфер хранения последних использовавшихся ключей;
back_log – количество одновременных подключений по TCP/IP стеку;
skip-locking – редко встречаемая трабла в BSD, но лучше выставить (решает проблемы с блокировкой файлов).

Устанавливая систему из портов, вы получите несколько готовых к применению конфигурационных файлов. Они рассчитаны для разного железа и количества пользователей. Необходимо выбрать наиболее близкий вашей системе вариант и отредактировать файл руками. Достаточно скопировать готовый файл под именем my.cnf в каталог /usr/var/db/mysql и перегрузить базу. Возможное содержание этого файла из расчета на 512 MB оперативной памяти выглядит так:
# Example def’s MySQL config file [my.cnf]
# The MySQL server
[mysqld]
set-variable = max_connections=300
set-variable = back_log=120
skip-locking
set-variable = key_buffer=256M
set-variable = max_allowed_packet=1M
set-variable = table_cache=256
set-variable = sort_buffer=1M
set-variable = record_buffer=1M
set-variable = myisam_sort_buffer_size=64M
set-variable = thread_cache=8
# При многопроцессорной системе параметр умножить на число CPU
set-variable = thread_concurrency=2
log-bin
server-id = 1
# Меняем стандартные пути
tmpdir = /tmp/

# Ускоряем архивацию
[mysqldump]
quick
set-variable = max_allowed_packet=16M

# Оптимизация и проверка таблиц
[isamchk]
set-variable = key_buffer=128M
set-variable = sort_buffer=128M
set-variable = read_buffer=2M
set-variable = write_buffer=2M

[mysqlhotcopy]
interactive-timeout

Для начала достаточно, двинемся дальше. О проблемах дискового ввода/вывода. Главное, помните, что swap и /var должны по возможности быть на разных физических HDD - базы mySQL находятся в каталоге /var/db/mysql, а mySQL регулярно свопится.
В FreeBSD вы обязательно найдете утилиту isamchk, которая предназначена для анализа размещения данных в таблицах, их оптимизации, нахождению и исправлению ошибок. Утилита имеет кучу параметров, но есть пара простых соображений по части её использования.
а) при каждом удвоении базы запускайте isamchk –a;
б) редко, но обязательно запускайте isamchk –d. Ð_тот параметр покажет вам число удаленных блоков, и если их количество велико, следует после запускать isamchk –r.

При большой нагрузке может оказаться, что пользователи получат отказ даже при заведомо выставленных правильно параметрах max_connections и back_log. Дело в том, что существует еще ограничение дескрипторов файлов и процессов в Unix. Ð_та проблема решается обязательной пересборкой ядра и выставлением опции maxusers = xxx, но это уже отдельная тема для разговора, а на сегодня все.

Bochkarev_D.S. добавил 11-01-2003 в 11:22:36:
P.S. я не пытаюсь сам выкладывать свои писанины на первую страницу, хотя пару раз уже просили. Если они того стоят, то polo или кто ему помогает сами должны сделать это.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 11-01-2003 11:15
Нажмите сюда для просмотра профайла Bochkarev_D.S. Отправить Персональное сообщение Bochkarev_D.S. Найти сообщения от Bochkarev_D.S. Добавить Bochkarev_D.S. в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Jovani
Участник
Средний рейтинг: 4.5 | Оценок: 8
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Dec 2001
Место проживания: дома
Публикаций: 239
Статус: Jovani в оф-лайне
[сообщение #73328]

Спасибо, полезная статейка.

Еще здесь я ее видел: http://www.opennet.ru/base/dev/mysql_tune2.txt.html

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 16-12-2004 08:43
Нажмите сюда для просмотра профайла Jovani Отправить Персональное сообщение Jovani Посетить домашнию страничку Jovani! Найти сообщения от Jovani Добавить Jovani в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
crazyElephant
Участник

Зарегистрирован: Jan 2005
Место проживания:
Публикаций: 1
Статус: crazyElephant в оф-лайне
[сообщение #73863]

log-bin
server-id = 1
хотелось бы узнать насколько сильно влияют эти параметры на оптимизацию сервера, т.е. каков прирост производительности после включения этих ключей в конфиг

__________________
Лишь тот достоин счастья с свободы,
кто каждый день идёт за них на бой

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 12-01-2005 10:00
Нажмите сюда для просмотра профайла crazyElephant Отправить Персональное сообщение crazyElephant Найти сообщения от crazyElephant Добавить crazyElephant в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 23:20.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.01082802 seconds (44.93% PHP - 55.07% MySQL) with 23 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.