Сайт «Зенита» просел под натиском болельщиков

14 мая 2008 года в финале розыгрыша кубка УЕФА петербургский футбольный клуб «Зенит» переиграл «Глазго Рейнджерс» и выиграл кубок УЕФА. У самой команды все прошло гладко и без сбоев, а вот у официального сайта ФК «Зенит» трудности были. В день матча за несколько часов до его начала на сайте была отключена гостевая книга.

В сообщении на странице говорилось, что «гостевая» не будет работать до 03:30 ночи, затем – до окончания трансляции матча. С утра 15 мая  2008 года также наблюдались проблемы с открытием некоторых страниц сайта. Посетителей встречала надпись «Too many connections». Причиной, естественно, является наплыв посетителей, поскольку сайт не рассчитан на такое их количество. Отметим, что похожие проблемы 15 мая 2008 года испытывал и сайт спортивной газеты «Спорт-Экспресс». Посетители не могли попасть на сайт из-за слишком большого количества запросов.

Представители петербургских хостинг-провайдеров и веб-разработчиков рассказали о некоторых возможных способах решения такой проблемы: «Устойчивость сайта к нагрузкам зависит от производительности сервера, на котором он расположен, степени его загруженности, емкости интернет-каналов, к которым подключен сервер, и, конечно, от самого сайта. Решений подобных проблем существует много. Высоконагрузочные системы – это отдельная отрасль веб-разработки. Все решения можно разделить на два типа - на стороне сайта и на стороне сервера. Со стороны сайта задача ставится в сокращении нагрузки на сервер при каждом запросе к сайту. Наибольшую нагрузку дают запросы к базам данных, работа с массивами данных и циклами. Снижение нагрузки достигается уменьшением числа запросов, производящихся при каждой загрузке страницы сайта, исключением сложных запросов, частичным кэшированием данных, хранением части информации на сайте в статичных файлах. Также быстродействие достигается использованием вместо mySQL более производительных СУБД, например Oracle. Решения со стороны сервера доступны для сайтов, которые размещаются на арендованном или собственном сервере. Решения могут быть аппаратными (чем мощнее сервер, чем больше у него производительность процессоров и другие характеристики, тем большее количество одновременных запросов он может обрабатывать) и программные (это использование кэширования на стороне сервера, показ статики через Nginx и др.). Если говорить о способах временно увеличить пропускную способность сайта в пиковые периоды, то такие способы есть, но 100-процентной гарантии они, к сожалению, не дают. От Ddos-атак, например, не удается иногда спасти даже самые мощные серверы. А такие атаки, по сути, заключаются в перегрузке самого сервера или канала к нему большим количеством запросов. Для защиты от пиковых перегрузок нужно, в первую очередь, измерить пропускную способность сайта. Это делается специальными программами, имитирующими нахождение заданного количества посетителей на сайте. И далее, уже зная, что на данном сервере при данном интернет-канале сайт способен выдержать не более, например, 5 тыс. посетителей одновременно, на сервере резервируются мощности. Это может быть дополнительный процессор, дополнительные планки памяти, дополнительная канальная емкость. В кластерных системах, состоящих из нескольких серверов, это дополнительные свободные сервера, которые подключают к работе только в моменты перегрузок. Если же перегрузки начинаются неожиданно, то быстрореализуемыми решениями являются остановка части системных процессов, чтобы максимально освободить сервер для клиентских запросов. Возможно также блокирование доступа к сайту части пользователей либо блокирование наиболее нагружающих сервер разделов сайта. Обычно это поиск по сайту, форум или гостевая книга, как было сделано на сайте «Зенита», - прокомментировала генеральный директор хостинг-провайдера «Дата Связи» Анна Зябрева. 

«Решить проблему устойчивости сайта к большому наплыву посетителей возможно несколькими способами. Первым из них является минимализация частоты соединений с базой данных – кэширование информации (страниц) в статические файлы. То есть пользователь получает ответ от сервера не после полного и ресурсозатратного цикла обработки запроса, а прямо из файлового кэша. Этот способ хорош в сочетании с архивированием данных перед отправкой посетителю сайта (gzip), что, в свою очередь, сберегает пропускную способность канала провайдера. Далее возможно использование кэширующих возможностей браузеров, уменьшающее количество запросов к серверу на стороне клиента (пользователя). Это убережет от лишних обращений к серверу. Третьим способом является отключение отдачи графики. То есть пользователь сможет видеть только статическую информацию на сайте, без всевозможных движущихся динамических элементов, роликов, оформления и т.п. И, наконец, самый прозрачный способ – установка больше одного сервера», - рассказал технический директор веб-разработчика Spbnet Артем Мошков.

«Можно просто наращивать аппаратную мощь, то есть ставить более мощные серверы, процессоры и т.п. Можно распределять нагрузку на кластер серверов вместо одного, причем архитектурные решения тут тоже бывают разными. Что же касается возможности временно увеличить пропускную способность во время пиковых нагрузок, то есть хорошие решения, которые помогают справиться с высокой нагрузкой по отдаче относительно статического контента. Это решения, подразумевающие различные уровни кэширования страниц, картинок или объектов, из которых состоят страницы. Но при интерактивном сайте (например, как упомянутая гостевая книга) они имеют малую эффективность, и тут уже могут помочь только кластерные решения, но делать их временно достаточно накладно, поскольку они требуют и значительных аппаратных затрат, и правильного проектирования архитектуры проекта», - рассказал представитель компании «Петерлинк. Веб» Юрий Степанов.

С проблемами подобного рода периодически сталкиваются все интернет-ресурсы - даже те, которые по своей специализации должны выдерживать большие нагрузки. В частности, 10 декабря 2007 года сайт «В Контакте.ру» функционировал не в оптимальном режиме. Однако в случаях со специализированными сайтами причиной, как правило, является не наплыв посетителей. В частности, в случае с «В Контакте.ру» сбой  произошел в результате неполадок в системе энергопитания дата-центра (см. новость от 13 декабря 2007 г.).

Автор: Денис Шишулин.

Тематики: Интернет, Маркетинг, ПО, Финансы, Web, Безопасность

Ключевые слова: