планирование виртуализированной среды

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

Интернет - База данных Apache 2.2 - MySQL 5 PHP 5.2

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

спасибо, Катал.


person Cathal    schedule 21.02.2012    source источник


Ответы (1)


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

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

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

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

person Matt Gibson    schedule 22.02.2012