Катодий (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 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments