Чи існує метод моделювання високої затримки?


11

Це дуже хороша відповідь про те, як обмежити пропускну здатність .

Тепер пропускна здатність не є моєю основною проблемою - затримка.

Що станеться, якщо я прокладу кілька сотень кілометрів між моїми серверами додатків та його серверами баз даних?

Я шукаю можливість моделювати очікуване відставання для кожного IP-пакету.

Відповіді:


14

Це можна зробити за допомогою netem. З їх домашньої сторінки :

Емуляція широкої затримки мережі

Це найпростіший приклад, він просто додає фіксовану кількість затримки до всіх пакетів, що виходять з локальної Ethernet.

# tc qdisc add dev eth0 root netem delay 100ms

Тепер простий тест пінг для розміщення в локальній мережі повинен показати збільшення 100 мілісекунд. Затримка обмежена тактовою роздільною здатністю ядра (Гц). У більшості 2.4 системних системних тактових годин працює 100 Гц, що дозволяє затримувати з кроком в 10 мс. На 2.6 значення є параметром конфігурації від 1000 до 100 Гц.

Пізніші приклади просто змінюють параметри, не завантажуючи qdisc

Реальні мережі широкої області показують мінливість, тому можна додати випадкові зміни.

# tc qdisc change dev eth0 root netem delay 100ms 10ms

Це призводить до того, що додана затримка становить 100 ± 10 мс. Варіант затримки в мережі не є виключно випадковим, тому можна пересвідчитись, що існує значення кореляції.

# tc qdisc change dev eth0 root netem delay 100ms 10ms 25%

Це призводить до того, що додана затримка становитиме 100 ± 10 мс із наступним випадковим елементом залежно від 25% від останнього. Це не справжня статистична кореляція, а наближення.

Затримка розподілу

Зазвичай затримка в мережі неоднакова. Для опису варіації затримки частіше використовувати щось на зразок звичайного розподілу. Нетемна дисципліна може скласти таблицю, щоб вказати нерівномірний розподіл.

# tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal

Фактичні таблиці (нормальні, парето, паротонормальні) генеруються як частина компіляції iproute2 та розміщуються в / usr / lib / tc; тому можливо з певними зусиллями зробити власний розподіл на основі експериментальних даних.


3
Чудово - і tcце навіть є на сучасних системах SLES та RHEL.
Нілс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.