Использование tc в Linux и dummynet во FreeBSD для ограничения пропускной способности

4332
lcbrevard

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

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

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

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

tc qdisc change dev eth0 root tbf скорость 512kbit пакетная передача 1540 

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

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

BW _______DUMMYNET__________ __________ TC __________ 10 Мбит / с 1 м, 3,489 с 4,0 МБ / с 1 м, 2,732 с 4,1 МБ / с 8 Мбит / с 1 м, 3,461 с 4,0 МБ / 1 м, 2,728 с 4,1 МБ / с 6 Мбит / с 1 м, 3,905 с 4,0 МБ / с 1 м, 2,710 с 4,0 МБ / с 1 Мбит / с 1 м, 3,261 с 4,0 МБ / с 1 м, 2,680 с 4,0 МБ / с 512 Кбит / с 1 м, 26,175 с 3,0 МБ / с 1 м 25,409 с 3,0 МБ / с 256 Кбит / с 2 м, 39,079 с 1,6 МБ / с 2 м 53,004 с 1,5 МБ / с 128 Кбит / с 5 м, 3,501 с 852,7 КБ / с 5 м, 50,491 с 739,7 КБ / с 64 Кбит / с 9 м, 48,907 с 463,3 КБ / с 9 м, 53,105 с 436,5 КБ / с 

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

5
Это может решить нашу проблему для 'tc', но если кто-нибудь знает, как настроить dummynet, это было бы полезно знать. Потенциальный клиент должен увидеть этот прогон в эмуляции сети на основе dummynet. Вот пост с информацией 'tc': http://superuser.com/questions/147156/simulation-a-low-bandwidth-high-latency-network-connection-on-linux lcbrevard 13 лет назад 0
работа над тем, чтобы заставить его работать в vm (мост dummynet) с пробным видео ... может потребоваться некоторое время, чтобы заставить его работать, записывать и публиковать видео, но это скоро произойдет. RobotHumans 13 лет назад 0
обратите внимание, что в dummynet вы не просто ограничены, у вас также есть параметр задержки RobotHumans 13 лет назад 0
К сожалению ... Я прокомментировал ниже, прежде чем я увидел это. Клиентская среда имеет уменьшенную пропускную способность и очень большую задержку (> 500 мс). Мы показали, что сокращение пропускной способности просто не работает с вышеуказанными тестами. Если мы только отложим, мы получим ожидаемые результаты. Мы пришли к выводу, что наша настройка для уменьшения пропускной способности была неправильной как на tc, так и на dummynet! lcbrevard 13 лет назад 0

2 ответа на вопрос

4
Sean Reifschneider

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

2
RobotHumans

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

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

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

Мы использовали выделенную систему для запуска dummynet и выделенную виртуальную машину для запуска 'tc', но я считаю, что у нас неверный синтаксис / порядок команд. lcbrevard 13 лет назад 0
есть ли предпочтения? с работой, которую я добавляю в виртуальную машину с помощью dummynet и видео, я могу захотеть превратить ее в живые медиа для вас RobotHumans 13 лет назад 0
Мне нужно понять оба сценария. Один из наших потенциальных клиентов предпочитает использовать выделенную систему с FreeBSD 8.1-RELEASE с некоторыми модификациями ядра и dummynet. Моя среда тестирования работает проще, используя виртуальные машины для всего. Я знакомлюсь с tc гораздо больше, но мне нужно изучить dummynet. lcbrevard 13 лет назад 0
хорошо, нет проблем ... так как freebsd ТРЕБУЕТСЯ, мне может понадобиться запустить мой vm заново (dummynet теперь доступен на debianized, и у меня мало опыта работы с BSD, так что это может занять немного больше времени ... в любом случае livecd должен оказаться полезным ... вставьте его в аппаратное обеспечение и убедитесь, что у вас есть сетевые драйверы goot ..... готово). RobotHumans 13 лет назад 0

Похожие вопросы