Performance
Что такое Jitter?
Jitter is variation in packet delay over time, as distinct from the average delay itself. For voice, gaming and trading, jitter often matters more than latency: a consistent 60 ms is far more usable than an average of 40 ms that regularly spikes to 200 ms, because buffers are sized for the worst case rather than the mean.
Почему Jitter важен
Для голоса, игр и торговли джиттер часто важнее задержки: стабильные 60 мс гораздо более полезны, чем средние 40 мс, регулярно подскакивающие до 200 мс, потому что буферы настроены на худший случай, а не на средний. Джиттер обычно возникает из-за очередей на перегруженном канале, из-за флаппинга маршрутов или — на стороне сервера — из-за времени кражи CPU, задерживающего процесс, который должен был ответить. Последняя причина невидима в сетевом трассировке и является причиной того, что выделенный vCPU важен для рабочих нагрузок, чувствительных к задержке. Измеряйте его с помощью mtr или длительного iperf3, а не нескольких пингов; выборка из пяти пакетов почти ничего не говорит о вариации.
Jitter на практике
Когда вы запускаете сервис, чувствительный к задержкам, джиттер — это то, что вы измеряете с помощью mtr или длительного запуска iperf3, а не нескольких пингов. Следите за разбросом в колонке задержки, а не только за средним значением. Если видите всплески, проверяйте время кражи CPU на хосте — оно невидимо в сетевой трассировке. Уменьшите джиттер, обеспечив выделенные vCPU, а не общие ресурсы. Если ошибиться, ваши буферы будут рассчитаны на худший случай, что означает, что ваш голосовой, игровой или торговый трафик деградирует до неработоспособного состояния в пиковые моменты.
Что люди часто понимают неправильно в отношении Jitter
Люди предполагают, что низкая средняя задержка означает хорошую производительность. Распространённая ошибка — игнорировать разброс, думая, что средние 40 мс со всплесками до 200 мс — это нормально. Правильно: джиттер часто важнее задержки — буферы рассчитываются на худший случай, поэтому стабильные 60 мс превосходят средние 40 мс с регулярными всплесками. Всегда измеряйте в течение времени.
Jitter — частые вопросы
Какой инструмент можно использовать для измерения джиттера?
Используйте mtr для быстрого просмотра или длительный запуск iperf3 для анализа разброса. Выборка из пяти пингов почти ничего не говорит о джиттере — она показывает только среднюю задержку. Запуск теста в течение более длительного периода выявляет всплески вариации задержки, которые действительно важны для реального трафика.
Как время кражи CPU влияет на джиттер?
Время кражи CPU задерживает процесс, который должен ответить на пакет, добавляя неожиданные всплески задержки. Эта причина невидима в сетевой трассировке, поэтому её часто упускают. Именно поэтому выделенный vCPU имеет значение для рабочих нагрузок, чувствительных к задержкам — на общих хостах время кражи вносит джиттер, который нельзя исправить на стороне сети.
Больше из раздела «performance»
- CPU steal time
- Steal time — доля времени, когда виртуальный процессор был готов к выполнению, но гипервизор отдал физическое ядро другому гостю.
- RTT
- RTT — это время прохождения пакета до пункта назначения и возврата ответа, измеряемое в миллисекундах.
- TTFB
- TTFB измеряет время от отправки запроса до получения первого байта ответа.