У нас есть сетевой продукт, который работает на 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, но я опубликую его позже.