Всем доброго времени суток.
Сегодня кратенькая заметка в блоговую часть сайта (все ведь знают, что она у нас есть, да? ;)) по серверной части, а то затюкали, что после второй книги я обленился и ничего не пишу по этому поводу. Исправляюсь.
В качестве продолжения начатого цикла, собственно, я хочу кратенько рассказать о том, как (хотя бы сильно приблизительно) настроить 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-калькулятор для расчета потребления памяти на основе конфига.
Найти калькулятор можно по этой ссылке, ну, а использовать его решительно несложно - достаточно вбить свои значения и изменять их, в результате чего внизу Вы увидите то самое "Max MySQL memory". Это удобно в тех случаях, когда вышеуказанный тюнер Вам даёт рекомендации, Вы их вводите (не прочитав предупреждение) и получаете на выходе возможное потребление памяти (в пике) в 10 раз превышающее физическую память, что, в конце концов, выйдет Вам боком в самый неподходящий момент.
В калькуляторе, в числе прочего, есть зафиксированные усредненные типовые значения, на случай, если Вы сбились с пути или Вам достался уже сомнительно настроенный сервер.
Что ж, к послесловию.
Послесловие
Вот такие два инструмента, которые, при наличии рук и головы, пригодятся многим (особенно на определенных отрезках возни с серверами, как локально, так и удалённо).
Как и всегда, если завалялись какие-то вопросы, то добро пожаловать в комментарии к этой заметке.
Надеюсь, что кому-то пригодится.
А есть подобные утилиты но только для Firebird ? Я понимаю что им уже мало кто пользуется но всё таки.
Не работает калькулятор
TypeError: $ is not a function