Катодий (cathody) wrote,
Катодий
cathody

Cферический хайлоад в вакууме



Сабж состоит обычно из частей, указанных на рисунке. Каждая часть может состоять из одной или более машин:
1) балансировщик решает, на какой из фронтов отослать запрос. Хороший балансировщик, как правило, "железка" (а не самосборный стервер под Убунтой) и умеет держать сессии, то есть всё время отправляет пользователя на один и тот же фронт.
2) фронт занимаются тем, что ищет и отдает динамические данные пользователям, запрашивая их у кэша
3) кэш смотрит, может ли он отдать данные сам, либо запрашивает их у сервиса, забирает себе и потом отдаёт фронту
4) сервис делает запрос к хранилищу динамических данных, и возвращает должным образом обработанную выборку данных, либо меняет данные в хранилище (а также, возможно, извещает кэш о протухании данных
5) Хранилище хранит динамические данные в SQL или noSQL базе

Хранилище статики отдаёт по URL картинки, фильмы, музыку, пользовательское соглашение и прочий редко меняющийся контент.

Понятно, что в конкретной реализации всё бывает немного иначе (например, есть ещё промежуточные кэши либо, наоборот, кэш совмещается с фронтом), но в сферическом случае всё выглядит примерно так.

К чему это я?

А вот к чему:
а) если вы открываете страницу в браузере и получаете ответ "Сервер не отвечает" - то это (возможно,под атакой) лёг балансировщик (а может и не лёг, просто у него на вас тупо не хватило коннекта).
б) если сервер пингуется (о пинговании ниже, да), но истекает время ожидания запроса в браузере - значит, отдыхает фронт (либо под атакой, либо от ошибки в коде, например из-за которой он бесконечно долго ждёт данные из кэша)
в) HO! Если вы видите (хотя бы иногда) сообщения от кэша (Memcache error или Varnish meditating), то это означает, что владельцы highload-сайта забыли правильно настроить кэш, или даже то, что они не смогли спланировать правильно нагрузку на свой сайт, из-за чего фронты и кэш (а не внешние пользователи, какими бы злокозненными они ни были) шлют на сервисы запросов больше, чем те могут переварить
г) А если вы видите надпись ORA-????? или Mysql error:, то это повод позвонить в компанию и сказать, что им нужно срочно менять сисодмина, и, возможно, тех. директора.

P.S. Я считаю, что highload-сайты не должны отвечать на любые запросы, за исключением http и https.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 2 comments