5

У нас есть сетевой продукт, который работает на Linux и должен быть протестирован в сетях с ограниченной пропускной способностью.

Мы смогли использовать 'tc' (управление трафиком) в Linux и dummynet во FreeBSD для введения задержки (задержки) с предсказуемым поведением.

Но когда мы пытаемся ограничить пропускную способность с помощью любого из них, это, кажется, не имеет большого эффекта.

Вот пример попытки использовать 'tc' для установки пропускной способности 512 Кбит / с:

tc qdisc change dev eth0 root tbf rate 512kbit burst 1540

Но когда мы запускаем 'scp' по этому соединению, мы видим скорости, которые намного выше, чем мы ожидаем.

Вот результаты настройки различной пропускной способности в dummynet и tc. Вы можете видеть, что это имеет НЕКОТОРЫЙ эффект, но не очень.

BW             _______DUMMYNET__________        __________ TC __________
10Mbps         1m,3.489s        4.0MB/s         1m,2.732s       4.1MB/s
8Mbps          1m,3.461s        4.0MB/          1m,2.728s       4.1MB/s
6Mbps          1m,3.905s        4.0MB/s         1m,2.710s       4.0MB/s
1Mbps          1m, 3.261s       4.0MB/s         1m,2.680s       4.0MB/s
512Kbps        1m,26.175s       3.0MB/s         1m 25.409s      3.0MB/s
256Kbps        2m,39.079s       1.6MB/s         2m 53.004s      1.5MB/s
128Kbps        5m, 3.501s       852.7KB/s       5m, 50.491s     739.7KB/s
64Kbps         9m,48.907s       463.3KB/s       9m,53.105s      436.5KB/s

У меня нет удобного синтаксиса, который мы использовали для DUMMYNET, но я опубликую его позже.

2 ответа2

4

Есть вопрос о сбое сервера, на который я ответил более подробным примером использования tc и iptables для ограничения трафика. Этот пример взят из настройки, которую мы имеем на нашем зеркальном сервере, и он работает очень хорошо.

2

Я бы не стал выполнять фильтрацию для рассматриваемой коробки, я бы запустил ее в выделенной коробке / VM между двумя рассматриваемыми технологиями. Таким образом, вы можете запустить чистую базовую линию и более адекватно оценивать результаты (запустите ethereal / wireshark с обеих сторон и посмотрите на разницу в размерах, чтобы убедиться, что вы работаете правильно)

вот что вам может пригодиться: http://www.dummycloud.com/screenshots

хотя тк должен сделать это за тебя

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .