Просмотров: 3297 (Статистика ведётся с 06.02.2017)
Дата последнего изменения: 21.11.2019
Роберт Басыров
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5
Недоступно в редакциях:
Старт, Стандарт, Малый бизнес, Бизнес

Выберите подходящий вариант

Прежде всего, необходимо внимательно проанализировать (спрогнозировать) характер нагрузки на веб-приложение. Для сбора и анализа данных рекомендуется проактивно использовать известные инструменты мониторинга, такие как munin, zabbix, apache server-status, и т.п.

Ниже перечислены варианты конфигурации веб-кластера для различных типов нагрузки.

Высокая нагрузка на процессоры, невысокая/средняя нагрузка на СУБД, контент меняется редко

Необходимо снизить нагрузку на процессоры - подключаем к веб-кластеру ноду(ы). Ноды заводим под балансировщик нагрузки. В результате нагрузка на процессоры распараллеливается между нодами.

Рекомендуется также на каждой ноде запустить сервер memcached - это позволит еще больше снизить нагрузку на процессоры за счет того, что кэш будет создаваться один раз на одной из нод веб-кластера, а использоваться остальными нодами.

Для синхронизации контента подойдет csync2, nfs/cifs-сервер на одной из нод веб-кластера.

Высокая растущая нагрузка на СУБД

Для разгрузки СУБД необходимо организовать master-slave репликацию. Чем больше будет добавлено slave-нод, тем сильнее снизится нагрузка на основную master базу данных. Если slave-ноды разной мощности, рекомендуется адекватно распределить между ними нагрузку с помощью параметра Процент распределения нагрузки (0..100).

В результате нагрузка на СУБД распределится между master и slave нодами веб-кластера. При дальнейшем увеличении нагрузки на СУБД рекомендуется:
  1. Оптимизировать master и slave-ноды. Т.к. master-сервер будет использоваться преимущественно для записи, его нужно, путем настройки параметров, оптимизировать для записи, а slave-ноды - оптимизировать для чтения.
  2. Добавлять slave-ноды.

Большой объем кэша, кэш часто перестраивается, контент меняется часто, изменений много

Необходимо настроить эффективную работу с кэшем. Для этого запускаем на каждой ноде сервер memcached, выделяем каждому по несколько GB памяти (в зависимости от требований приложения).

Для синхронизации контента рекомендуется использовать выделенный nfs/cifs-сервер, либо ocfs/gfs или аналоги.


6


Курсы разработаны в компании «1С-Битрикс»