Перейти к содержимому
Калькуляторы

Использование 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?

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я игрался.

 

Параметры и обьяснение брал отсюда: 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")

 

 

 

 

 

 

 

 

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

#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 работать не хочет. Кто нибудь в курсе как заставить его работать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.