Назад | Перейти на главную страницу

Тестирование - Как генерировать TCP-потоки с ограниченной скоростью?

Работает с Ubuntu.

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

Есть ли какая-нибудь утилита, позволяющая загружать файл с сервера и ограничивать скорость загрузки?

Трафик - tcp.

Спасибо

Обе wget, cURL и ария2 поддерживать ограничение скорости загрузки:

$ wget --limit-rate=10k http://www.far-away-site.com/file.dat
$ curl --limit-rate 10K http://www.far-away-site.com/file.dat
$ aria2c --max-download-limit=10K http://www.far-away-site.com/file.dat

Вы также можете ограничить скорость на клиенте Linux для тестирования с другими инструментами загрузки, которые не поддерживают ограничение скорости, используя tc, кондиционер трафика. Из руководства lartc:

# clean existing down- and uplink qdiscs, hide errors
tc qdisc del dev eth0 root    2> /dev/null > /dev/null
tc qdisc del dev eth0 ingress 2> /dev/null > /dev/null
# install root CBQ
tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 100mbit
# shape everything at 10kbps
tc class add dev $DEV parent 1: classid 1:1 cbq rate 10kbit allot 1500 prio 5 bounded isolated

для проверки пропускной способности рекомендую iperf - для TCP он устанавливает соответствующее количество передач - однако UDP требует, чтобы вы указали ему целевую полосу пропускания канала из-за его природы без сохранения состояния.