@Dimus

Почему трафик через round-robin стал распределяться неравномерно?

Доброго времени суток!
Для раздачи медиа файлов имеется такая конфигурация:
1) Основной сервер - хранит все медиафайлы проекта, раздает их
2) Несколько прокси-кеш серверов через nginx раздают самые популярные за последнее время медиа файлы с основного сервера.

Конфиг проски-кеш серверов:
proxy_cache_path /web/media levels=1:2 keys_zone=my_cache:10m max_size=20g inactive=1440m;
location / {
    proxy_cache my_cache;
    proxy_pass http://my-site.com/media/;
}


Балансировка происходит просто через DNS Round-robin (все IP адреса кэш серверов прописаны для поддомена media.my-site.com).

Все это прекрасно работало и мы примерно имели такое ежемесячное распределение трафика на серверах:
Основной сервер - 8.87 TiB
Кеш 1 - 6.12 TiB
Кеш 2 - 6.14 TiB
Кеш 3 - 4.35 TiB (этот сервер отработал не полный месяц, поэтому трафик меньше, чем у соседей)
Итого трафика — 8.87 + 6.12 + 6.14 + 4.35 = 25,48 TiB в месяц
(еще на основном сервере трафика больше за счет того, что с него кеш сервера забирают исходные файлы)

Однако после переезда на более мощный основной сервер (увеличилась в том числе полоса со 100Мбит до 1Гбит) почти весь трафик стал идти через основной сервер:
Основной сервер - 25 TiB
Кеш 1 - 261.86 GiB
Кеш 2 - 264.81 GiB
Кеш 3 - 268.34 GiB
Итого трафика — 25 + 0.261 + 0.264 + 0.268 = 25,79 TiB

Получается, суммарный трафик остался прежним, но он весь пошел через основной сервер.
Единственное предположение - основной сервер теперь работает по 1Гбит сети (раньше работал по 100Мбит'ной)
Кеширующие сервера остались прежними, на них скорость 100Мбит.

Куда копать? Почему при таком простом распределении стал получаться такой перекос в трафике?
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
@Dimus Автор вопроса
Спасибо за советы! Оказалось дело было совсем в другом, я напортачил с конфигами nginx. Одновременно с переездом на новый сервер проект полностью перешел на https протокол, а в конфигах кеш серверов осталась ссылка на http://... версию сайта.
В итоге, когда запрос приходил на кеш сервер — кеш-сервер запрашивал файл с основного сервера по http — на основном сервере ему отдавался редирект на https — кеш-сервер отдавал этот редирект пользователю и все.
Сори за беспокойство, сейчас прописал: proxy_pass https://my-site.com/media/; и все заработало как надо )
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
dimonchik2013
@dimonchik2013
non progredi est regredi
копать в ДНС, очевидно же

и в локацию нового сервера, если вдруг ДЦ или страна сменилась
Ответ написан
Комментировать
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Если RR честный и рандомно или циклически отдаёт записи, то скорее всего дело в каких-то посторонних кэширующих серверах, игнорирущих TTL, которые как-то раз запомнили ответ для вашего сервера и, держа в кэше эту запись, всех последующих отправляли на неё. Ну или просто какой-то бот парсил ваши файлы в один заход.

Посмотрите, если есть, статистику по трафику - если есть всплески в пределах нескольких диапазонов IP, скорее всего причина где-то там, а не у вас.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы