заметки

Калькулятор для настройки MySQL-сервера (my.cnf) и немного рекомендаций

Всем доброго времени суток.

Сегодня кратенькая заметка в часть сайта (все ведь знают, что она у нас есть, да? ;)) по , а то , что после я обленился и ничего не пишу по этому поводу. Исправляюсь.

mysql

В качестве продолжения начатого цикла, собственно, я хочу кратенько рассказать о том, как (хотя бы сильно приблизительно) настроить MySQL и понять сколько памяти он будет кушать на Вашем сервере (в зависимости от ряда параметров конфига), а так же как понимать, что и когда стоит менять.

Давайте приступим.

MySQL-калькулятор для конфигов памяти и MySQL-tuner для настройки сервера

Давайте начнем с такой штуки как простенький скрипт, который почти автоматически проверяет текущее состояние сервера и выдаёт как детальную информацию по тому, что включено-выключено и пр, но и заодно даёт подсказки, что стоит изменить в конфиге.

Так как это блоговая часть сайта, я не пишу подробную статью и полагаю, что с SSH Вы уже работали, а так же понимаете о чем вообще идет речь и что за MySQL мы планируем настраивать. Начнем с загрузки mysqltuner-а :

wget https://raw.github.com/major/MySQLTuner-perl/master/mysqltuner.pl

Скрипт загружен. Запускаем (для работы требуется наличие Perl на сервере):

perl mysqltuner.pl

В результате конфиг вывалит огромный список:

С описанием всего и вся, в частности, рекомендаций по конфигу:

Рекомендации стоит иметь ввиду, но не считать истинной последней инстанции. В частности, хорошо бы обращать внимание на восклицательные знаки и прочую диагностическую информацию, которую Важно знать (и корректировать на основе неё настройки сервера):

В числе прочего Вы можете увидеть строки вида:
[--] Physical Memory : 36.5G
[--] Max MySQL memory : 10.1G
[--] Other process memory: 7.2G

Расчет значения максимального потребления этой самой памяти идет как раз таки, в числе прочего, на основе параметров, которые у Вас указаны в my.cnf (местоположение зависит от операционной системы сервера и версии пакета mysql). Как Вы понимаете, разумно сделать так, чтобы MySQL не вылезал за пределы физической памяти в пиковой нагрузке, да еще и оставлял место для других процессов.

В принципе, рассчитать это значение достаточно не сложно, но чтобы Вы сильно не мучались я собрал (коих, впрочем, миллионы в интернете) кратенький для расчета потребления памяти на основе конфига.

Настройка и калькуляция памяти Mysql - скриншот 4

Найти калькулятор можно , ну, а использовать его решительно несложно - достаточно вбить свои значения и изменять их, в результате чего внизу Вы увидите то самое "Max MySQL memory". Это удобно в тех случаях, когда вышеуказанный тюнер Вам даёт рекомендации, Вы их вводите (не прочитав предупреждение) и получаете на выходе возможное потребление памяти (в пике) в 10 раз превышающее физическую память, что, в конце концов, выйдет Вам боком в самый неподходящий момент.

В калькуляторе, в числе прочего, есть зафиксированные усредненные типовые значения, на случай, если Вы сбились с пути или Вам достался уже сомнительно настроенный сервер.

Что ж, к послесловию.

Послесловие

Вот такие два инструмента, которые, при наличии рук и головы, пригодятся многим (особенно на определенных отрезках возни с серверами, как локально, так и удалённо).

Как и всегда, если завалялись какие-то вопросы, то добро пожаловать в комментарии к этой заметке.
Надеюсь, что кому-то пригодится.

Оценить

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
(9 голосов, в среднем: 4.4 из 5)
  1. Reply
    Михаил

    А есть подобные утилиты но только для Firebird ? Я понимаю что им уже мало кто пользуется но всё таки.

 

* - комментарии могут появляться не сразу, попасть в спам или быть удалены за несоответствие правилам