У нас 5 физических серверов. Все идентичны. ОЗУ 16 гб, 4x146 10к sas в рейде 10.
Итак, нам нужна высокая доступность. Текущий план следующий:
2 бокса с Heartbeat для балансировки нагрузки. На данный момент nginx настроен как балансировщик.
тогда проблема в сети и mysql. Я планирую установить 2 ящика под управлением mysql и nginx. Между этими полями настройте репликацию mysql в master <-> master. Затем добавьте последний ящик, в котором реплицируется mysql. Для этой модели каждый веб-сервер подключается к своему локальному серверу mysql. (чтобы минимизировать задержку в сети).
Другая модель - поместить два ящика (nginx) в HA и еще два ящика в mysql master / slave. но в этой модели только балансировщик нагрузки ....
Или мне нужна другая установка. В основном мне не нужно, как это делать, а какую модель выбрать. Нам нужно обрабатывать большой трафик (около 20 тыс. Запросов / с).
Три рекомендации.
1.) Рассмотрите возможность использования HA Proxy поверх nginx для балансировки нагрузки.
[РЕДАКТИРОВАТЬ]
На что следует обратить внимание при рассмотрении прокси HA через HttpUpstream:
HttpUpstream:
HA прокси:
HA Proxy - это действительно бесплатный балансировщик нагрузки IMO.
[РЕДАКТИРОВАТЬ/]
2.) Посмотри в кеширование. Профилируйте производственные запросы по образцу производственных (или подобных) данных. Попадание в базу данных 20 тысяч раз в секунду может привести к повреждению серверов баз данных. Это 1,7 МИЛЛИАРДА транзакций в день при условии, что каждый запрос включает только ОДНУ транзакцию. Это много. Squid, memcached, redis и т. Д. Могут сохранить здесь ваш бекон, если возможно кеширование.
3.) Я упоминал профилирование?
Трудно предложить план действий, не зная шаблонов использования ресурсов вашего приложения. Например, вы можете обнаружить, что вам придется разместить MySQL в двух специальных блоках, чтобы удовлетворить спрос на запросы. С другой стороны, прокси-сервер высокой доступности чрезвычайно эффективен с точки зрения памяти и процессора. Возможно, вам удастся обойтись, если ваша установка HA Proxy будет совместно использовать ресурсы двух ваших веб-голов.