Я понимаю, что многие подобные вопросы уже задавались, но до сих пор мне не удалось найти решение моей проблемы.
У меня есть виртуальный сервер Linux (работает под управлением Debian Squeeze), который я использую для тестирования скорости веб-сайтов, чтобы измерить увеличение и уменьшение времени загрузки указанных веб-сайтов. Я пытаюсь ограничить пропускную способность и задержку этого сервера, чтобы иметь возможность приблизиться к реальному времени загрузки веб-сайтов, но пока не удалось.
Что я хочу конкретно, так это следующее:
- Для установки входящей и исходящей задержки 50 мс.
- Чтобы установить ограничение входящей пропускной способности 512 кбит / с.
- Установить ограничение исходящей полосы пропускания в 4096 кбит / с.
Я читал о netem и использовал tc
команду, но это все еще немного над моей головой. Мне удалось собрать эту команду для управления задержкой, которая, кажется, работает, но я даже не уверен, обрабатывает ли она только исходящую задержку или обе:
tc qdisc add dev eth0 root netem delay 50ms
Любые сетевые гуру, которые могут мне помочь?
Редактировать:
После дальнейших исследований я достиг половины своей цели, используя эту команду, весь исходящий трафик ведет себя так, как я хочу:
tc qdisc add dev eth0 root tbf rate 4.0mbit latency 50ms burst 50kb mtu 10000
Тем не менее, я до сих пор не смог должным образом ограничить входящий трафик. Я узнал, что должен использовать «Фильтр входного ограничителя», который я пытался сделать с помощью приведенной ниже команды, играя с разными значениями, но не повезло.
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match ip src 0.0.0.0/0 flowid :1 police rate 1.0mbit mtu 10000 burst 10k drop
Тем не менее, команда влияет на полосу пропускания. Приведенные выше значения приводят к тому, что скорость начинается со скоростью 2 МБ / с и, по мере передачи, медленно снижается примерно до 80-90 КБ / с, что достигается примерно через 30 секунд передачи.
Есть идеи, что я делаю не так?
netem delay 50ms
не ограничивает время ожидания Это увеличивает задержку по50ms
сравнению с тем, что было бы иначе.