День добрый!
Есть безлимитный канал в интернет, есть 1000 пользователей.
Будем считать, что канал нужно просто делить между пользователями.
Правила для каждого пользователя добавляются так:
...
cl=30
...
for i in `seq 1 96`; do
tc class add dev $DEV parent 1:1 classid 1:$cl htb rate 16kbit ceil 256kbit burst 1600 cburst 1600 prio 5
tc qdisc add dev $DEV parent 1:$cl handle $cl: sfq perturb 0
tc filter add dev $DEV parent 1: protocol ip prio 5 u32 match ip dst 11.0.230.$i flowid 1:$cl
let cl=cl+1
done
...
ICMP выделяются в отдельный цировый поток.
По вечерам, когда активно одноврменно большое кол-во пользователей, задержки (ICMP) начинают сильно расти (с 16 до 200мс). Можно предположить, что виновата загрузка канала, но в то же время, если ceil указать равным емкости канала и разрешить доступ всего 10-20 пользователям, такой проблемы нет. То есть виноват htb.
Есть какие-либо идеи, как побороть эту проблему? Железный шейпер купить возможности нет.