Предпосылки
Если у вас очень популярный сайт, со временем сервер, на котором он расположен, достигнет предельной нагрузки, в результате которой больше не сможет обрабатывать входящие запросы.На языке IT это явление называется Слэшдот-эффект (мощный всплеск посещаемости веб-сайта). Добавление оперативной памяти, апгрейд процессоров и использование быстрых дисков и шин поможет в краткосрочной перспективе, но в результате вы все равно обнаружите, что одна машина не сможет выдерживать требуемую нагрузку.
Один из способов обеспечения отказоустойчивости сайта – это балансировка нагрузки серверов. Путем добавления второй (или третьей) машины в доступный пул оборудования, вы можете не только увеличить производительность, но и повысить отказоустойчивость сервера. Если у вас есть машина горячего резерва (или несколько), работающая(ие) постоянно, то в случае, когда основной сервер испытывает проблемы, другие могут выполнять его работу без простоя.
Балансировка нагрузки серверов с помощью Round-robin DNS
Возможно, самый простой способ преодоления Слэшдот-эффекта – это метод балансировки нагрузки серверов с помощью Round-robin DNS. При этом входящие запросы к веб-сайту могут быть отправлены на любое количество машин.В BIND 9 есть возможность для одного домена создать несколько А-записей. Например, предположим, что мы используем в файле зоны домена для example.com:
www 60 IN A 10.0.0.1
www 60 IN A 10.0.0.2
При определении А-записи для www.example.com в DNS, в половине случаев пользователи увидят:
host www.example.com
www.example.com has address 10.0.0.1
www.example.com has address 10.0.0.2
.... а в другой половине:
host www.example.com
www.example.com has address 10.0.0.2
www.example.com has address 10.0.0.1
Поскольку большинство приложений используют только первый адрес, возвращаемый DNS, то этот метод работает достаточно хорошо. Запросы распределяются между веб-серверами примерно пополам, и, таким образом, нагрузка на каждый из них уменьшается приблизительно в два раза.
В примере TTL установлен равным 60 секундам, для того чтобы предотвратить влияние кэширующих серверов DNS. Это должно помочь поддержанию более или менее равного количества запросов к каждому серверу.
Технология Round-robin DNS используется для балансировки нагрузки только в случае, когда произведена настройка зеркального копирования (зеркалирования) данных для всех серверов. Если это не так, то браузер может сначала показать одну версию страницы сайта, а после нажатия кнопки «Обновить» - другую.
ОРИГИНАЛ
Обсуждение статьи и дополнительная информация на нашем форуме:
Отказоустойчивость сервера
Интересная заметка, никогда не знал, что при создание 2ух A записей, трафик распределяется попалам.
ОтветитьУдалить