планирование виртуальной среды - PullRequest
0 голосов
/ 21 февраля 2012

Я нахожусь на ранних стадиях планирования виртуальной среды для нашей производственной системы (Moodle). Слои относительно просты:

веб - Apache 2.2 База данных - MySQL 5 PHP 5.2

Мой вопрос заключается в следующем: каков общепринятый подход для распределения вышеуказанных уровней между физическими серверами? В этом случае мы планируем иметь 2 физических сервера. Должен ли я стремиться сохранить кластер веб-сервера на одном физическом сервере, а кластер базы данных - на другом? Или реплицировать полный стек на обоих серверах в случае сбоя одного из них? Любое понимание этого очень помогло бы мне.

спасибо, Cathal.

1 Ответ

0 голосов
/ 22 февраля 2012

Мы используем отдельные (виртуальные) серверы, но поддерживаем отдельные стеки на каждом из них просто потому, что накладные расходы малы, и это обеспечивает гибкость, если мы хотим увеличить / уменьшить. Однако это не для запасного варианта, потому что если один сервер настолько сломан, что не доступен через Интернет, вы, вероятно, не сможете получить данные с него и на второй сервер, чтобы он был полезной заменой. Используйте резервные копии для восстановления и регулярно восстанавливайте их.

Moodle обычно блокирует на стороне PHP, а не на стороне БД, и мы видим примерно 3,5: 1 PHP: загрузка ЦП MySQL, когда они находятся на разных машинах. Имея это в виду, вы должны учитывать, какова максимальная емкость одного сервера: вы получите лучшую производительность, если у вас вообще нет перегрузок в сети между машинами, поэтому чем больше, тем лучше. Если вы не можете сделать это с одним, тогда лучше сделать 2 VMS, одну большую для PHP и одну меньшую для MySQL, но сравните различия под нагрузкой для вашей конкретной настройки (используйте Apache JMeter для этого).

В наших самых крупных инсталляциях участвуют около 70 000 пользователей или около того, и у нас есть две виртуальные машины по 4 ЦП / 8 ГБ, одна для PHP и одна для MySQL (хотя одна БД редко превышает 30% ЦП). Это позволяет около 400 одновременных подключений через Apache. Однако мы используем большую ферму виртуальных машин и можем легко увеличивать и уменьшать от 2 до 16 процессоров, поэтому вы можете рассмотреть возможность использования одной машины-монстра, если вам нужна гибкость.

Для получения дополнительной информации о производительности Moodle, посмотрите здесь , особенно в разделе «масштабируемость».

...