Performance
Что такое RTT?
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 измеряет время от отправки запроса до получения первого байта ответа.