Мы используем cookie, чтобы сайт был лучше для вас.
Внимание
У Вас отключена поддержка Cookie в браузере. Возможно некорректное отображение сайта!

Что такое latency и как её сократить

На скорость работы веб-ресурса влияет множество факторов. Один из них — сетевая задержка, или latency. Давайте разбираться, что это такое, как задержка влияет на работу приложений и как её можно сокращать.

Что такое задержка

В широком смысле latency (задержка) — это любая задержка во времени при выполнении каких-либо операций. Задержки бывают разные: сетевые, звуковые, при передаче видео в прямых трансляциях, на уровне накопителей и другие.

Фактически любой тип задержек — это следствие ограничений скорости, с которой может передаваться любой сигнал.

Большинство типов задержек измеряется в миллисекундах, но не все. Например, при общении CPU и SSD для измерения latency используются микросекунды.

Но в этом материале мы будем говорить именно о сетевых задержках и под термином latency будем иметь в виду именно их.

Сетевые задержки (network latency, время ожидания) — это задержки, возникающие при передаче информации по сети из точки A в точку B.

Представьте веб-приложение, которое развёрнуто в дата-центре в Париже. В это приложение заходит пользователь из Рима. Браузер отправляет запрос на сервер в 9:22:03.000 по центральноевропейскому времени. А сервер получает его в 9:22:03.174 по центральноевропейскому времени. Задержка при отправке этого запроса — 174 мс.

Это несколько упрощённый пример. Надо отметить, что при измерении задержек не учитывается объём данных. Чтобы передать 1 000 МБ данных, понадобится больше времени, чем на доставку 1 КБ. Однако скорость передачи данных может быть одинаковой, и задержка в этом случае тоже будет одинаковой.

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

Передавать данные совсем без задержек невозможно, так как ничто не может передаваться быстрее скорости света.

От чего зависит сетевая задержка

Основной фактор, который влияет на latency, — расстояние. Чем ближе источник информации к пользователям, тем быстрее будут передаваться данные.

Допустим, от Рима до Неаполя (чуть меньше 200 км) запрос дойдёт примерно за 10 мс. А от Рима до Майами (чуть больше 8 000 км) тот же запрос при тех же условиях дойдёт примерно за 120 мс.

Есть и другие факторы, влияющие на сетевую задержку.

Качество сети. На скоростях свыше 10 Гбит/с медные кабели и соединения показывают слишком большое затухание сигнала даже на коротких расстояниях, в пределах нескольких метров. С увеличением скоростей интерфейсов в основном используются оптоволоконные сетевые кабели.

Маршрут. Данные в интернете обычно передаются не через одну сеть. Информация проходит через несколько сетей — автономных систем. В точках перехода из одной автономной системы в другую маршрутизаторы обрабатывают данные и направляют их по нужному маршруту. На обработку тоже тратится время. Поэтому чем больше сетей, чем больше IX на пути пакета, тем дольше он будет идти.

Эффективность работы маршрутизаторов. Чем быстрее маршрутизаторы будут обрабатывать данные, тем быстрее информация дойдёт до точки назначения.

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

На что влияют сетевые задержки

Задержки влияют на другие показатели скорости работы веб-ресурса, например RTT и TTFB.

RTT (Round-Trip Time, время приёма-передачи) — это время, за которое отправленные данные доходят до точки назначения, плюс время на подтверждение того, что данные были получены. Грубо говоря, это время на путь данных туда и обратно.

TTFB (Time To First Byte, «время до первого байта», время ответа сервера) — это время, прошедшее с момента отправки запроса на сервер до получения первого байта информации от него. В отличие от RTT, этот показатель включает в себя не только время, потраченное на доставку данных, но и время на их обработку сервером.

Эти показатели, в свою очередь, влияют на восприятие скорости и пользовательский опыт в целом. Чем быстрее работает веб-ресурс, тем активнее юзеры будут им пользоваться. И наоборот, медленная работа приложения может негативно сказаться на вашем онлайн-бизнесе.

Какой должна быть оптимальная задержка и как её измерить

Понять, какие у вашего ресурса задержки, проще всего, измерив другие показатели скорости, например RTT. Этот параметр ближе всего к latency. Во многих случаях он будет равен удвоенному значению задержки (когда время пути туда равно времени пути обратно).

Измерить его очень просто с помощью команды ping. Откройте командную строку, введите ping, а затем IP-адрес или веб-адрес ресурса.

Давайте для примера попробуем пропинговать www.google.com.

C:\Users\username>ping www.google.com

Обмен пакетами с www.google.com [216.58.207.228] с 32 байтами данных

Ответ от 216.58.207.228: число байт=32 время=24мс TTL=16

Ответ от 216.58.207.228: число байт=32 время=24мс TTL=16

Ответ от 216.58.207.228: число байт=32 время=24мс TTL=16

Ответ от 216.58.207.228: число байт=32 время=24мс TTL=16

Параметр «время» — это и есть RTT. В нашем примере он равен 24 мс.

Оптимальное значение RTT зависит от специфики вашего проекта. В среднем большинство специалистов считают хорошим показателем меньше 100 мс.

Величина RTT Что означает
<100 мс Очень хорошо, улучшения не обязательны
100–200 мс Допустимо, но можно улучшить
>200 мс Неудовлетворительно, параметр обязательно нужно улучшать

Как сократить задержку

Вот несколько базовых рекомендаций:

  • Сократите дистанцию между источником данных и пользователями. Старайтесь размещать серверы как можно ближе к вашим клиентам.
  • Улучшите связность сети. Чем больше пиринг-партнёров (сетей, с которыми вы можете обмениваться трафиком), вариантов построения маршрута будет, тем лучший маршрут вы сможете построить и тем быстрее будут передаваться данные.
  • Улучшите балансировку трафика. Распределение больших объёмов данных по разным маршрутам поможет уменьшить нагрузку на сеть. За счёт этого информация будет передаваться быстрее.

С первым и вторым пунктами поможет CDN — сеть доставки контента, множество связанных серверов, которые забирают информацию с источника, кешируют её и доставляют кратчайшим маршрутом. Глобальная сеть с хорошей связностью поможет вам значительно сократить задержки.

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

Чтобы существенно ускорить приложение, как правило, нужна комплексная оптимизация. Основные советы по ускорению вы найдёте в статье «Как увеличить скорость работы веб-ресурса».

Подведём итоги

  1. Задержка (latency) — это время, нужное, чтобы доставить данные по сети из одной точки в другую.
  2. Главный фактор, от которого она зависит, — расстояние. Также на неё влияют качество сети и маршрут (количество сетей, точек обмена трафиком).
  3. Задержка влияет на другие показатели скорости работы веб-ресурса, например на RTT и TTFB. А они, в свою очередь, влияют на конверсию и позиции в поисковой выдаче.
  4. Понять, с какими задержками работает ресурс, проще всего, измерив RTT. Сделать это можно с помощью команды ping. Оптимальным RTT считается показатель менее 100 мс.
  5. Самый эффективный способ сократить задержки — подключить CDN. Сеть доставки контента уменьшит расстояние между клиентом и источником данных, улучшит маршрутизацию, и за счёт этого информация будет передаваться быстрее.

EdgeЦентр CDN обеспечивает отличную скорость передачи контента. Доставляем тяжёлые файлы с минимальными задержками в любую точку мира.

У нас есть бесплатный пробный период. Протестируйте нашу сеть и посмотрите, как ускорится ваш ресурс.

Подпишитесь на полезную рассылку

Выгодные предложения и важные новости раз в месяц. Без спама

Нажимая кнопку «Подписаться», я даю согласие на получение рекламно-информационной рассылки согласно Политике