Встановіть бюджет затримки для трафіку реального часу через VPN
Почніть із граничного терміну, який застосунок мусить витримати, а потім виміряйте односторонню затримку та джитеру за зазначених умов. Середнє без порогу для запізнілих пакетів нічого не доводить.
Скарги на VPN у реальному часі потребують терміну, щодо якого можна зазнати невдачі, а „низька затримка“ — це не він. Вирішіть, що розмова чи віддалена сесія мусять доставити, тоді виміряйте шлях щодо цієї вимоги за зазначених умов. Без порогу для запізнілих пакетів кожен результат можна оскаржити. Розподіл нижче — це рішення про дизайн, і він існує, щоб вимірюванню було що відповісти.
Запишіть термін до того, як торкнетеся зонда
Термін походить від застосунку та його користувачів, а не з маркетингової сторінки постачальника. Живий голосовий виклик, сесія віддаленого робочого столу й нічне резервне копіювання витримують зовсім різний час очікування, а важливою невдачею зазвичай є хвіст, а не медіана. Запишіть число разом із навантаженням, до якого воно належить.
Потім розподіліть його. Захоплення й пакетизація споживають частину бюджету, доступне з'єднання й тунель — іншу частину, буфер приймача для усунення джитеру навмисно утримує пакети, а обробка в застосунку бере решту. Називання цих етапів тримає шифрування тунелю в пропорції, а не робить його типовим підозрюваним для кожного повільного пакета.
Насамкінець визначте контракт вимірювання в чотирьох рядках: кінцеві точки й напрямок, форма трафіку, умови під час запуску та результат, який ви повідомите. Тихий недільний зразок і завантажений вівторковий зразок відповідають на різні питання, тож укажіть, який ви зібрали. Якщо ви не можете заповнити всі чотири рядки, запуск не готовий початися. Цей контрольний список також робить два звіти порівнюваними через місяці, коли ніхто не пам'ятає, що ще ніс канал.
Розподіліть бюджет на кожен етап
Таблиця — це допоміжний засіб планування, а не зібрані дані. Впишіть власника для кожного рядка до першого зонда, бо власник — це той, кому ви телефонуєте, коли етап перевищує свою частку.
| Stage | What it contributes | Who owns it |
|---|---|---|
| Capture and packetization | Encoder frame size, aggregation | Application owner |
| Tunnel and transit | Encryption, queueing, path length | Network owner |
| Receiver buffer | Deliberate waiting to absorb variation | Application owner |
| Application processing | Decode and render time | Application owner |
Два рядки зазвичай дивують людей. Буфер приймача не є несправністю, коли додає затримку, бо він робить роботу, для якої його налаштували. А частка тунелю часто менша за чергу перед ним, особливо на висхідному каналі, що насичується під час вивантажень.
Коли етап не має власника, бюджет — це вигадка. Призначте когось до вимірювання, інакше наступну зустріч ви проведете в суперечці, чиє число неправильне.
Вимірюйте односторонню затримку чесним годинником
Одностороння затримка — це число, яке має значення для терміну, і воно потребує синхронізованих годинників на обох кінцях. метрика односторонньої затримки вимагає, щоб ви поруч із результатом повідомили метод синхронізації, роздільну здатність і оцінене відхилення. Два несинхронізовані вузли можуть дати дуже точне число для неправильної величини.
Зберіть кілька сотень пакетів, а не жменю, і одночасно зафіксуйте стан годинника:
$ ntpq -p
$ owping -c 300 -i 0.2 10.90.0.1
$ ping -c 200 -i 0.2 10.90.0.1 | tail -n 3
Час кругового обходу — це окреме вимірювання, а не два односторонні значення, додані разом. Поділ RTT навпіл припускає симетричні шляхи й симетричні черги, а тунель через мобільний висхідний канал рутинно ламає обидва припущення. Повідомляйте RTT як RTT і тримайте його поза одностороннім бюджетом.
Повідомте хвіст і запізнілі пакети
Підсумуйте розподіл: медіану, 95-й і 99-й процентиль, найгірший випадок, втрати та кількість пакетів, що прибули пізніше, ніж дозволяє термін. Середнє — найменш корисне з цих чисел для навантаження реального часу, бо гладке середнє може приховати хвіст, що псує кожен третій виклик.
Варіація затримки безпосередньо живить буферизацію приймача. Більше буферизації приховує варіацію й додає очікування, тож потік може виглядати стабільним, перевищуючи свій термін. Виберіть формулювання варіації, укажіть інтервал, який ви міряли, і тримайте його послідовним між запусками.
Повторіть запуск із репрезентативним зустрічним трафіком. Шлях, який вкладається в бюджет у простої й не вкладається під час вікна резервного копіювання, сказав вам щось корисне про планування, чого не виявило б жодне окреме тихе вимірювання. Запишіть умови поруч із результатом, бо інакше наступний інженер порівняє два зразки, які ніколи не були порівнюваними.
Прийміть дизайн, коли виміряний хвіст уміщається в бюджет за навантаження, яке ви справді запускаєте, та відкиньте його, назвавши у звіті етап, що перевищив ліміт.