Вики Сообщества
Advertisement
Вики Сообщества

Мы хотим немного познакомить вас с "кухней" Викия и начнём, пожалуй, с самого главного для вики - обычных страниц. Знаете ли вы, что суммарно на всех викиях, расположенных на Викия, пользователи открывают более 1 миллиарда страниц в месяц? И при этом серверы Викия не сгорают и не взрываются от нагрузок. Как же это получается? Ответ следующий: кеширование, кеширование, кеширование и твёрдотельные накопители!

Инженеры Викия потратили значительное время, чтобы понять, каким образом участники и читатели используют викии и как сделать так, чтобы страницы открывались быстро. Они тесно сотрудничают с разработчиками программного обеспечения, исследуют новые возможности, методики и аппаратное обеспечение, желая выиграть ещё несколько миллисекунд производительности и сохранить бесплатный хостинг наших викий. Анализ действий участников Викия и трафика является одним из ключевых в работе команды инженеров.

Вот несколько интересных словечек, которые инженеры используют постоянно:

  • Кеш - сохраняет страницу сайта как файл (по сути, копирует страницу), чтобы при повторном использовании участник мог быстрее её открыть.
  • Пограничный кеш - первый слой кеша и самый близкий к участникам..
  • Varnish (HTTP акселератор) - служит для обслуживания пограничного кеша.
  • Memcache - высокопроизводительная база данных для кеширования приложений, чтобы минимизировать доступ к баз данных MySQL.
  • Серверы базы данных MySQL - серверы, которые используются для хранения и кеширования всего содержимого на Викия.
  • Буферный кеш - кеш, который использует серверы MySQL, чтобы реже обращаться к содержимому SSD.
  • Твёрдотельные накопители (SSD) - высокопроизводительные диски, где хранится всё содержимое Викия.
Как это работает?

Самое главное, что нужно понять из всего вышесказанного, что кеширование данных состоит из нескольких слоёв, и вы попадёте в эти слои или один из этих слоёв при просмотре страниц на вики. Давайте рассмотрим типичный путь вашего запроса, то есть когда вы кликаете по ссылке на вики.

Первой остановкой будет Сеть Доставки Контента, которой управляет компания Fastly (основана бывшим активным участником Викия Артуром Бергманом). Fastly использует Varnish, чтобы доставить выбранную вами страницу из пограничного кеша. Пограничный кеш содержит наиболее часто просматриваемые страницы за последние 24 часа. Если вы захотите посетить страницу, которую не посещал никто из вашего региона за последние 24 часа, то пограничный кеш вас обслужить не может, и ваш запрос переадресуется на один из наших серверов Apache. Сервер заглянет в Memcache, чтобы посмотреть, есть ли там затребованная вами страница, и при положительном ответе выдаст вам эту страницу. При отрицательном ответе поиск продолжится на сервере базы данных MySQL, который в свою очередь обратится к буферному кешу, а если страницы нет и там, то запрос отправится на конечную станцию - твёрдотельный накопитель.

"Ого! Как много и долго!" - воскликнете вы. Однако на самом деле самый длинный поиск по этой цепочке занимает всего 0,25 секунды!!!

Итак, сколько же слоёв кеша пробегает обычный запрос на вики? Согласно статитстике трафика 90-94% запросов ограничены пограничным кешем. Таким образом, реакция на 9 из 10 запросов страниц на вики занимает микросекунды, а не миллисекунды, как было указано выше. Если исследовать статистику дальше, то только 2-3% запросов "добегают" до базы данных MySQL и твёрдотельных дисков.

Что ещё улучшить?

Наши инженеры постоянно ищут способы улучшить Викия, постоянно исследуя и настраивая слои кеша. Переход на твёрдотельные накопители позволил значительно ускорить производительность серверов, так как они в 10-20 раз быстрее, чем традиционные жёсткие диски, установленные в большинстве домашних компьютеров. Именно поэтому Викия может поддерживать работоспособность 100 000 викия и предлагать участникам различные уникальные расширения.

С момента основания Викия, сервис базируется на программном обеспечении с открытым исходным кодом, и мы считаем это очень важным для продолжения роста Викия и сотрудничества с другими компаниями, работающими со свободными лицензиями.

Надеемся, что данный материал открыл вам хотя бы немного из того, что находится внутри Викия и чем занимается наш технический отдел. Если у вас есть комментарии или мнения, пожалуйста, оставьте их ниже.

Advertisement