Главная страница Публикации Статьи Правильное размещение сайта

Правильное размещение сайта

Правильное размещение сайта: стоит ли выбирать хостинг в Европе или США?

к.э.н. Лавлинский Н. Е., технический директор ООО «Метод Лаб»

Занимаясь ускорением сайтов профессионально, невольно начинаешь замечать медленные сайты в ежедневной работе. После проведения экспресс-анализа часто оказывается, что ускорить сайт можно элементарно переместив сервер ближе к пользователям.

Причин медленной загрузки сайтов много, но сейчас мы остановимся именно на выборе географического расположения сервера. Вопрос этот актуален, так как многие разработчики сайтов, не понимающие последствий, размещают сайты своих клиентов на хостинге в Европе (иногда даже в США). При этом для подавляющего большинства русскоязычных сайтов аудитория находится в России (про исключения мы поговорим позже).

Почему сайты размещают в Европе или США?

Основных аргументов два: это дешево и надежно. Насчет стоимости все не так однозначно, если сравнивать качественный хостинг, также не стоит забывать о том, что иностранный хостинг тарифицируется в валюте, что несет в себе большие риски, которые недавно серьезно сыграли. В целом, для большинства бизнес-проектов без большой нагрузки достаточно одного выделенного сервера или даже VPS. Стоимость такого хостинга у качественных провайдеров в России 1000–6000 рублей в месяц. Говорить об экономии на такой сумме для бизнес-сайта не имеет смысла.

Аспект надежности имеет субъективную оценку и как правило заявления о стабильности того или иного дата-центра не подкреплены объективными данными. Если проект имеет высокий уровень критичности для бизнеса, то в любом случае требуется отказоустойчивое решение с использованием минимум двух дата-центров. Тогда надежность одного дата-центра не имеет большого значения. В случае использования любого одного дата-центра проект будет иметь риск даунтайма (даже если это супернадёжный Tier IV ДЦ).

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

Чем плохо хоститься в Германии и вообще далеко от пользователя?

Перейдем к самому главному: в чем проблема хостинга в дальних странах? Действительно, у нас же глобальный Интернет, рамки национальных границ нас не остановят...

Рассмотрим на простом примере. Для оценки эффекта от размещения нашего сайта в Европе достаточно простой утилиты ping. Давайте запустим её и посмотрим на ситуацию с Яндексом:

# ping ya.ru
PING ya.ru (213.180.193.3) 56(84) bytes of data.
64 bytes from www.yandex.ru (213.180.193.3): icmp_req=1 ttl=56 time=3.01 ms
64 bytes from www.yandex.ru (213.180.193.3): icmp_req=2 ttl=56 time=3.05 ms
64 bytes from www.yandex.ru (213.180.193.3): icmp_req=3 ttl=56 time=3.39 ms
64 bytes from www.yandex.ru (213.180.193.3): icmp_req=4 ttl=56 time=3.25 ms

Как видно, пинг с моего компьютера до Яндекса составляет чуть более 3 миллисекунд. При этом время 3 мс означает время прохождения пакета (в данном случае 56(84) байт) туда и обратно.

Теперь сделаем такой же тест для известного хостинга Hetzner (Германия).

# ping hetzner.de
PING hetzner.de (213.133.107.227) 56(84) bytes of data.
64 bytes from www.hetzner.de (213.133.107.227): icmp_req=1 ttl=50 time=54.8 ms
64 bytes from www.hetzner.de (213.133.107.227): icmp_req=2 ttl=50 time=54.8 ms
64 bytes from www.hetzner.de (213.133.107.227): icmp_req=3 ttl=50 time=54.7 ms
64 bytes from www.hetzner.de (213.133.107.227): icmp_req=4 ttl=50 time=56.0 ms

Результат совсем другой: в среднем 55 мс.

Казалось бы: ну и что, все равно быстро? Не все так просто. Дело здесь в том, как работает стандартный браузер и протокол HTTP.

Если упростить, то процесс загрузки выглядит следующим образом:

  • Получить IP-адрес сервера.
  • Отправить запрос на сервер для получения HTML-кода страницы.
  • Разобрать (распарсить) страницу.
  • Отправить запросы на все найденные в странице ресурсы (картинки, CSS, JS, другие файлы).
  • Отрисовать страницу, как только готовы критичные элементы.

Ключевым тормозом здесь является выделенный пункт, потому что средняя страница содержит 50-100 ресурсов. Как же браузер будет грузить эти ресурсы? Если все это поставить в очередь и грузить в один поток, мы не дождемся загрузки страницы и выключим браузер. Чтобы ускорить процесс браузер открывает несколько параллельных соединений, как правило до 6 и как правило на один хост. Тогда наши картинки грузятся уже в 6 параллельных потоков.

Как мы увидели ранее, передача даже самого компактного пакета занимает 55 мс. Это значит, что для загрузки любого элемента страницы мы потратим минимум 55 мс (даже при нереальном условии мгновенного ответа сервера). Простой расчет времени загрузки с учетом одного подключения показывает: 50/6*55+2*55=568 мс. При использовании хостинга в России: 31 мс. Это очень компактный вариант сайта. Реальный сценарий будет в полтора-два раза медленнее. То есть мы можем получить более секунды потерь только на сетевых задержках.

Не стоит забывать, что пропускная способность каналов также не улучшается при удалении сервера. Узким местом становится «разгон TCP-соединения», работающий по алгоритму TCP slow start. Время разгона обратно пропорционально задержкам в сети.

В итоге реальный итог размещения сервера в Германии для среднего корпоративного сайта: 3-4 лишние секунды загрузки для пользователя. Как мы знаем, медленный сайт снижает конверсию, лояльность и доверие потенциальных клиентов. Экономия 500-1000 рублей на хостинге этого стоит?

Что делать если пользователи есть не только в Москве или России?

Для сайтов с распределенной аудиторией есть только одно качественное решение: размещение контента в CDN (content delivery network), чтобы сайт был ближе к пользователю в каждом конкретном случае. При этом нужно позаботиться о том, чтобы CDN имела точки присутствия как можно ближе к вашим пользователям. Более подробно об этом поговорим в отдельной статье.

Лучшее ускорение сайтов в Рунете

Ускорение сайтов

Цена от 19 900 Р