Performance

Что такое RTT?

Также известно как: round-trip time, ping
Определение

RTT is the time for a packet to travel to a destination and for the response to return, measured in milliseconds. The physical floor is about 1 ms per 100 km each way: light in fibre travels at roughly two-thirds of c and real routes are around 1.35 times the great-circle distance.

Почему RTT важен

Физический минимум составляет около 1 мс на 100 км в каждую сторону: свет в оптоволокне движется примерно на две трети скорости света, а реальные маршруты примерно в 1,35 раза длиннее расстояния по большому кругу. Ни один провайдер не преодолевает этот минимум, поэтому размещение определяет воспринимаемую скорость больше, чем любые аппаратные характеристики. Хорошая сеть приближается к минимуму — прямой пиринг вместо трех транзитных хопов и незагруженные линии, не добавляющие задержку очереди поверх расстояния. Обратите внимание, что ICMP ping и время кругового пути на прикладном уровне — это не одно и то же измерение: маршрутизаторы обычно де-приоритизируют ICMP, поэтому пинг может выглядеть хуже, чем TCP-квитирование, которое на самом деле испытывают ваши пользователи. На каждой странице местоположения OnionVPS публикуется предполагаемый RTT до каждого другого региона, рассчитанный по приведенной выше формуле, чтобы число было воспроизводимым, а не рекламным.

RTT на практике

При управлении сервером RTT — это базовая истина для воспринимаемой пользователем задержки. Я наблюдаю за ним из нескольких точек, а не только из своего дата-центра. Если RTT моего приложения до региона высокий, я сначала проверяю, не проходит ли путь через три транзитных хопа или перегруженные линки; это задержка из-за очередей, которую можно исправить. Если дело в расстоянии — я перемещаю инстанс. Ошибиться — значит получить сервис, который ощущается медленным, и никакие характеристики железа это не исправят, потому что физические законы задают нижнюю границу. Хорошая новость: RTT из ICMP-пинга может вводить в заблуждение, поскольку маршрутизаторы де-приоритезируют этот трафик; измеряйте через реальное TCP-рукопожатие.

Что люди часто понимают неправильно в отношении RTT

Распространённая ошибка — считать ICMP-пинг окончательным значением RTT. Многие думают, что пинг показывает то, что испытывают пользователи, но маршрутизаторы де-приоритезируют ICMP, поэтому пинг может выглядеть хуже, чем реальное TCP-рукопожатие. Исправление: используйте измерения на прикладном уровне для реальной задержки, с которой сталкивается пользователь.

RTT — частые вопросы

Как RTT связан с пингом?

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

Каков минимально возможный RTT?

Физический предел — около 1 мс на каждые 100 км в одну сторону, при этом реальные маршруты примерно в 1,35 раза длиннее прямого расстояния по дуге большого круга. Ни один провайдер не может превзойти это, потому что свет в оптоволокне движется со скоростью 2/3 от c. Размещение важнее любого железа.

Больше из раздела «performance»

CPU steal time
Steal time — доля времени, когда виртуальный процессор был готов к выполнению, но гипервизор отдал физическое ядро другому гостю.
Джиттер
Джиттер — это вариация задержки пакетов во времени, в отличие от средней задержки.
TTFB
TTFB измеряет время от отправки запроса до получения первого байта ответа.