Рейтинг 4.6 из 5 (16 Голосов)

Установка Percona server

Если поднимать вопрос о оптимизации нашей системы, то узким местом системы будет база данных MySQL. Есть смысл вместо стандартной MySQL поставить Percona Server. В двух словах - это оптимизированная сборка MySQL полностью совместимая с форматами хранения (взятого с офсайта) MySQL.

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

Также получаем

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

По установке есть небольшой мануал на оф. сайте: http://www.percona.com/doc/percona-server/

Перед установкой Percona Server на Debian сначала необходимо удалить Mysql.

Ниже команды именно полного удаления MySQL. Если у вас уже есть базы - позаботьесь о бекапе.

apt-get remove mysql*
apt-get purge mysql*
apt-get autoremove

Также удаляем инструмент администрирования баз данных MySQL - PHPMyAdmin если такой установлен, так как его придется устанавливать заново с другими модулями.

apt-get remove phpmyadmin 
apt-get autoremove

Устанавливать будем из репозиториев.

Откроем файл /etc/apt/sources.list и добавим в него

deb http://repo.percona.com/apt wheezy main
deb-src http://repo.percona.com/apt wheezy main

Если у нас ранее использовались репозитории squeeze то видимо Перкону также надо устанавливать из squeeze чтобы сохранить зависимости для PHP клиента и апача.

deb http://repo.percona.com/apt squeeze main
deb-src http://repo.percona.com/apt squeeze main

Импортируем ключ командой

apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

Чтобы избежать обновлений с Debian репозитория создадим файл  /etc/apt/preferences.d/00percona.pref

nano /etc/apt/preferences.d/00percona.pref

добавим следующие строки

Package: *
Pin: release o=Percona Development Team
Pin-Priority: 1001

Обновим список пакетов

apt-get update

Теперь можно ставить сервер и клиент

apt-get install percona-server-server percona-server-client libmysqlclient18

При установке из squeeze репозитория:

apt-get install -t squeeze percona-server-server percona-server-client libmysqlclient16

При установке будет запрошен пароль для Percona сервера.

Если установка будет прервана из за конфликта зависимостей, то устанавливаем зависимости командой

apt-get install -f

Введите следующую команду, чтобы проверитьуспешность установкиPerconaServer.

apt-get remove phpmyadmin 
apt-get autoremove
0

Пример вывода

apt-get remove phpmyadmin 
apt-get autoremove
1

После первых тестов сервера выяснилось что Percona на локальном сервере-виртуалке потребляет около 80% доступной оперативной памяти даже в простое. По крайней мере с конфигом по умолчанию. Напомню что виртуалка создавалась с 512мб оперативы.

При использовании MySQL из репозитория на сервере с Debian 6 даже со стандартными конфигами без тюнинга такого не наблюдалось. В качестве нагрузки я устанавливал на хост этот же сайт.

Возможно такая ситуация возникает из-за конфликта зависимостей, так как я использовал php 5.3 и клиент для работы с базой данных из репозитория squeeze.

При попытке добавить в конфиги файл /etc/mysql/my.cnf которым обычно можно тюнить сервер, и добавив несколько директив - Percona перестала запускаться.

Погуглив выяснилось также что по умолчанию my.conf не создается в Percon'е и примеров файла как в мускуле тут нет.

Еще немного покопав основной конфиг и не добившись снижения потребляемой памяти - я решил заменить Перкону на известный мне Mysql.

На другом тестовом сервере с дистрибутивами wheezy Percona потребляла около 40% общей памяти от 512мб на сервере.

Отключив InnoDB и протестив еще раз - изменений небыло. Все те же 40% процентов. А это, как мне кажется для VDS-ки будет уже неприемлемо.

Для того чтобы узнать какие настройки сейчас использует mysql, смотрим команду:

apt-get remove phpmyadmin 
apt-get autoremove
2

До MySQL 5.5 поддержка InnoDB отключалась с помощью строчки "skip-innodb" в /etc/mysql/my.cnf.

Но с выходом MySQL 5.5 поменялся синтаксис, и теперь при использовании строки "skip-innodb", mysql не стартует:

[FAIL] Starting MySQL database server: mysqld . . . . . . . . . . . . . . failed!

Для отключения теперь пишем в /etc/mysql/my.cnf:

apt-get remove phpmyadmin 
apt-get autoremove
3

Percona же пишет:

apt-get remove phpmyadmin 
apt-get autoremove
4

Если у вас есть информация по тестированию и тюнингу Percona на слабых Vds - пишите в комментах.

Здесь решение по уменьшению объема потребляемой оперативной памяти.

Возможно эта статья сэкономит вам время и нервы, и вы не станете сразу устанавливать Перкону на продакшен сервер, а также, сначала протестируете сборку в песочнице.

Просмотров: 31387 Печать Назад
 

Комментарии 

#3 fff
29.10.2015 15:14
Вот этой командой
apt-get remove mysql*
удаляется далеко не только mysql, а еще много чего.
Цитировать
#2 Валерий
05.10.2015 14:46
Просто команды надо было разделить и написать с новой строки. Визуальный редактор после обновления статьи подкачал. Исправил.
Цитировать
#1 Артем
06.08.2015 14:13
Скорее всего у Вас опечатка
apt-get remove phpmyadmin apt-get autoremove
надобы поменять на
apt-get remove phpmyadmin && apt-get autoremove
Цитировать
 
Рекомендуем по теме...