LINUX.ORG.RU
ФорумAdmin

squid: скорость скачки в зависимости от размера


0

0

Можно ли как-то задать сквиду, чтобы он мог менять скорость загрузки обьектов к клиенту в зависимости от их объема? К примеру файлы до 10Мб отдаем на полной скорости, а свеше 10 - на, скажем, 5 кб/c.

anonymous

Для регулирования используются delay_pool в squid.conf если он (squid) собран с их (delay_pool) поддержкой.

Цитата (не помню, откуда): Итак, давайте разберемся с траффик-шейпингом - именно так эта штука называется. В squid же эта вещь носит название delay-pool. Замечу, что squid при сборке должен быть собран с опцией --enable-delay-pools.

Итак, сначала разберемся, какие есть пулы. Пулы делятся на 3 класса. Первый, и самый простой, это когда всему acl зарезается трафик до определенной величины. Второй - когда отдельно зарезается трафик для одной машины из подсети и для всей подсети. И третий класс - когда зарезается трафик для отдельных машин, для подсети класса С или меньше и для подсети класса B. Не понятно? Сейчас разьясню.

Итак, давайте обыграем ситуацию, когда у нас в сети завелся "дискокачальщик".

delay_pools 1 - у нас всего 1 пул. delay_class 1 1 - 1й пул у нас первого класса delay_access 1 allow vasya delay_access 1 deny all

В первый пул попадают только машины, описываемые ACL vasya. Остальные ходят как им положенно - ведь им доступ к 1му пулу заказан.

delay_parameters 1 800/64000

Вот и все. Теперь файлики и страницы обьемом до 64кб будут скачиваться на максимальной скорости (то есть для веба хватит за глаза), а то, что больше этого - на скорости 800 байт в секунду.

Если он вас совсем достал, то напишите правило

delay_parameters 1 800/800 - и злобный качальшик все будет качать на скорости 800 байт в секунду.

Но у вас офис и в его канале периодически начинается толчея - все хотя что-то качать, в итоге никому ничего не хватает.

Исправляем строчку с delay_pools на delay_pools 2

теперь у нас будет 2 пула

delay_class 2 2 - второй пул будет второго класса (совпадение номеров чисто случайно ;-)) - первый - это vasya

delay_access 2 allow office delay_access 2 deny all

во второй пул попадают только машины с ACL office.

delay_parameters 2 64000/64000 4000/4000

В итоге вся подсеть, описываемая office, будет использовать канал не больше 512Кбит/с (64Кб/с), но каждый отдельный хост будет качать не более 4Кб в секунду. Этим правилом очень легко разграничить по скорости разные подсети, использующие один канал.

К примеру, у нас есть две подсети, описываемые office и office1. При этом office не должно иметь никаких ограничений на канал (примем канал за 256Кбит) в целом, но каждый из office не должен качать быстрее 6Кб/с. А office1 - это нехорошие дяденьки и тетеньки с большин гонором, которым всем и 5Кб/с хватит за глаза.

Создаем 2 пула 2го класса и прписываем для них ACL. Затем определяем этим пулам параметры.

delay_parameters 3 -1/-1 6000/6000 - это определение для office (ему отдан номер пула 3)

delay_parameters 4 5000/5000 -1/1 - а это для office1.

В итоге после применения этих правил получаем все, что заказано - первый офис грузит канал как хочет (-1/-1), но никто из сотрудников больше 6Кб/c на нос не получает. А второй офис грузит канал не больше 5Кб/с, а как данные 5Кб/с распределяются между его сотрудниками - не наша головная боль. Пауки в банке, так сказать.

Понятно, что в описание пулов можно заложить время, места и так далее, но конструирование таких правил я оставляю на вас - каждому нужно свое. Конец цитаты

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

Как раз нужное и не описано.

2автор: Смотри описание delay_parameters, тебя должен интересовать параметр individual

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