LINUX.ORG.RU
ФорумAdmin

шейпинг и задержки


0

0

Доброй ночи!

Центральный офис фирмы имеет безлимитный канал в Интернет 100 мбит/сек, три дополнительных офиса имеют линки до центрального по 10 мбит/сек. Для каждого офиса выделяются две подсети /24. Одна для "высокоприоритетных" пользователей, другая для "низкоприоритетных". Пока cisco не купили, шейпинг должен быть реализован на linux. Написал следующие правила (решил пока обойтись без хэшей - циклом добавляю для каждого ip правило):

tc qdisc add dev $DEV root handle 1: htb default 15

tc class add dev $DEV parent 1: classid 1:1 htb rate ${SPEED_LINK}kbit burst 2k

# высокоприоритетный класс
tc class add dev $DEV parent 1:1 classid 1:10 htb rate 64kbit ceil ${SPEED_LINK}kbit burst 1600 prio 1
# всё, что не попало под правила
tc class add dev $DEV parent 1:1 classid 1:15 htb rate 64kbit ceil ${SPEED_LINK}kbit burst 1600 prio 4

tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 0
tc qdisc add dev $DEV parent 1:15 handle 15: sfq perturb 0

tc filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip tos 0x10 0xff flowid 1:10
tc filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:10
tc filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 flowid 1:10

cl=20
# низкоприоритетный
for i in `cat /etc/scripts/low`; do
tc class add dev $DEV parent 1:1 classid 1:$cl htb rate 32kbit ceil 512kbit burst 1600 prio 3
tc qdisc add dev $DEV parent 1:$cl handle $cl: sfq perturb 0
tc filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip dst $i flowid 1:$cl
let cl=cl+1
done

# высокоприоритетный
for i in `cat /etc/scripts/high`; do
tc class add dev $DEV parent 1:1 classid 1:$cl htb rate 32kbit ceil 512kbit burst 1600 prio 2
tc qdisc add dev $DEV parent 1:$cl handle $cl: sfq perturb 0
tc filter add dev $DEV parent 1: protocol ip prio 1 u32 match ip dst $i flowid 1:$cl
let cl=cl+1
done

SPEED_LINK выставлен в 9 мбит/c, то есть на физический линк трафик поступает медленее, чем он может пропустить. ICMP выделены в высокоприоритетный трафик. Но ежедневно возникает одна и та же ситуация. Когда одновременно работает весь дополнительный офис, канал сильно нагружен, задержки сильно возрастают: минимальные с 20 до 40, средние с 25 до 80. В высокоприоритетном классе поток небольшой. В центральном офисе всё в норме, то есть со внешним каналом всё в порядке. Куда копать?

anonymous

У меня была такая же проблема поначалу. Для начала попробуй вместо sfq юзать esfq. Он умеет правильно балансировать не по потокам, а по src/dst получателя.

З.Ы: Вместо "sfq perturb 0" попробуй поставить "sfq perturb 10". Напиши результат.

iron ★★★★★
()
Ответ на: комментарий от iron

>sfq perturb 10
Это всегда даёт отрицательный результат.

>Для начала попробуй вместо sfq юзать esfq.
А причём тут sfq и esfq, если ICMP выделены в отдельный поток? Проблема, как мне кажется, в htb.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.