Jump to content
Калькуляторы

Использование burst в pipe зависимость burst от queue

Добрый день всем Наговцам!

При очередном чтении man ipfw обратил внимание,

что в пайпах есть технология burst.

burst size
            If the data to be sent exceeds the pipe's bandwidth limit (and
            the pipe was previously idle), up to size bytes of data are
            allowed to bypass the dummynet scheduler, and will be sent as
            fast as the physical link allows.  Any additional data will be
            transmitted at the rate specified by the pipe bandwidth.  The
            burst size depends on how long the pipe has been idle; the effec‐
            tive burst size is calculated as follows: MAX( size , bw *
            pipe_idle_time).

К сожалению в инете инфы не так много... (Например нашел статью О методах искусственного увеличения показаний).

 

На первый взгяд все элементарно.

Насколько понял, то при простое пайпа первый трафик указанный в burst не шейпится,

после чего шейпинг происходит в обычном режиме.

У меня, для каждого ip создается отдельный pipe

в каждое из направлений (используется tablearg).

Вот например задаем скрость пайпа в 1Mbit/s и burst 1Mbyte

#ipfw pipe 9344 config burst 1M bw 1Mbit/s
# ipfw pipe 9344 list
09344:   1.000 Mbit/s    0 ms burst 1048576
q140416  50 sl. 0 flows (1 buckets) sched 74880 weight 0 lmax 0 pri 0 droptail
sched 74880 type FIFO flags 0x0 0 buckets 0 active

При подобной настройке не происходит первоначального увеличения скорости...

При дополнительно указанном queue:

#ipfw pipe 9344 config burst 1M bw 1Mbit/s queue 800KB
# ipfw pipe 9344 list
09344:   1.000 Mbit/s    0 ms burst 1048576
q140416 800 KB 0 flows (1 buckets) sched 74880 weight 0 lmax 0 pri 0 droptail
sched 74880 type FIFO flags 0x0 0 buckets 0 active

При такой настройке действительно происходит увеличение первоначальной скорости (стартует закачка с 200-250Kbyte/s)

 

Какая вообще зависимость между burst и queue?

Кто-то игрался с этими параметром?

Есть ли какието "побочные" действия, кроме запланированого кратковременного увеличения скорости?

Share this post


Link to post
Share on other sites

Я игрался.

 

Параметры и обьяснение брал отсюда: http://www.cisco.com/en/US/docs/ios/12_2/qos/configuration/guide/qcfpolsh.html

 

Если кратко, то рекомендуется <code>normal burst = configured rate * (1 byte)/(8 bits) * 1.5 seconds</code>

 

Всё, в принципе, работает действительно красиво.

 

У меня сейчас стоит вот так:

 

<code>

 

my $queue_size = int($speed_in / (8 * 10));

my $burst_size = int($speed_in / 8);

 

...

 

$ipfw pipe $rule_in config bw ${speed_in}Kb/s mask dst-ip 0xFFFFFFFF queue ${queue_size}Kbytes burst ${burst_size}

 

$ipfw pipe $rule_out config bw ${speed_out}Kb/s mask src-ip 0xFFFFFFFF queue ${queue_size}Kbytes burst ${burst_size}

 

$ipfw queue $rule_in config pipe $rule_in mask dst-ip 0xFFFFFFFF queue ${queue_size}Kbytes

 

$ipfw queue $rule_out config pipe $rule_out mask src-ip 0xFFFFFFFF queue ${queue_size}Kbytes

 

</code>

 

 

 

 

Единственное "но" (относящееся к burst косвенно), это что по умолчанию queue size ограничено на уровне 1Мбайта ("sysctl net.inet.ip.dummynet.pipe_byte_limit")

 

 

 

 

 

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

 

#ipfw pipe 9344 config burst 1M bw 1Mbit/s
# ipfw pipe 9344 list
09344:   1.000 Mbit/s    0 ms burst 1048576
q140416  50 sl. 0 flows (1 buckets) sched 74880 weight 0 lmax 0 pri 0 droptail
sched 74880 type FIFO flags 0x0 0 buckets 0 active

При подобной настройке не происходит первоначального увеличения скорости...

При дополнительно указанном queue:

#ipfw pipe 9344 config burst 1M bw 1Mbit/s queue 800KB
# ipfw pipe 9344 list
09344:   1.000 Mbit/s    0 ms burst 1048576
q140416 800 KB 0 flows (1 buckets) sched 74880 weight 0 lmax 0 pri 0 droptail
sched 74880 type FIFO flags 0x0 0 buckets 0 active

При такой настройке действительно происходит увеличение первоначальной скорости (стартует закачка с 200-250Kbyte/s)

 

Какая вообще зависимость между burst и queue?

Кто-то игрался с этими параметром?

Есть ли какието "побочные" действия, кроме запланированого кратковременного увеличения скорости?

У меня вот проблема, не работает burst не с queue не без него в FreeBSD выше версии 8. В FreeBSD 8, никаких проблем не возникает, всё работает как надо. В 8.2, 8.3 и 9 работать не хочет. Кто нибудь в курсе как заставить его работать?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now