Четверг, 21.11.2024, 11:37
УзкоеМесто
Главная | Мои написания | Регистрация | Вход
Меню сайта
Категории каталога
Мои статьи [3]
ВМЕМОРИЗ [12]
Жизнь Сисадмина [18]
Полезные (на мой взгляд) сведения для сисадминов
Оченно рекомендую! [8]
Материалы и работы, с которыми я рекомендую ознакомиться
Поэзия [3]
Ссылки, строки. Поэтическое - не только стихотворное...
Наш опрос
Как вы относитесь к возможности покупки спиртного несовершеннолетними
Всего ответов: 59
Главная » Статьи » Жизнь Сисадмина

Описание настройки Squid delay pools

Описание настройки Squid delay pools

В лучшем proxy-сервере Squid (также работающем под Windows) есть хороший механизм ограничения скорости загрузки. Единственная беда - про написано много, но по-английски, а об устройстве - вообще только 2 сообщения от разработчиков в списке рассылки. Поэтому постараюсь рассказать про него, что понял сам.

Итак, основные моменты. Каждый пул определяется двумя параметрами: размером буфера и скоростью его заполнения. Всего существует 3 класса пулов:

  1. Ограничена общая скорость загрузки.
  2. Ограничена общая скорость загрузки и скорость загрузки индивидуального хоста (биты 25 -32 IP-адреса).
  3. Ограничена общая скорость загрузки, скорость загузки подсети (биты 17-24 IP-адреса) и скорость загрузки индивидуального хоста (биты 25 -32 IP-адреса).

Важно пояснить, что для пулов второго и третьего класса каждое соединение проходит через все ограничения: общее -> подсеть (только для третьего класса) -> хост. Для более наглядного представления IP-адресов в двоичной форме скачайте себе LanCalculator.

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

Что мы имеем в результате.
  • Если размер буфера и его скорость заполнения равны, то клиент всегда качает с максимальной скоростью.
  • Если размер буфера больше скорости заполнения, то файлы объемом меньше размера буфера клиент получает на максимальной скорости, а больше - на максимальной.
  • Если скорость заполнения буфера больше размера буфера, то клиент всегда получает данные на максимальной скорости (объем буфера), но Squid не подкачивает данные, пока клиент полностью не опустошит буфер.

Перейдем к конфигурированию. Поиск необходимого пула будет происходить только до первого совпадения, поэтому при объявлении пулов необходимо соблюдать нужный порядок.

Сначала объявляем ACL (списки доступа), по которым мы будем определять принадлежность клиентов к определенному пулу.

acl vasya src 192.168.1.10/32
acl kolya src 192.168.1.11/32
acl petya src 192.168.1.12/32
acl masha src 192.168.1.13/32
acl director src 192.168.1.14/32
acl office1 src 192.168.2.0/24
acl office2 src 192.168.3.0/24
acl office3 src 192.168.4.0/24


Объявляем сами пулы.

delay_pools 3 # Всего будет 3 пула
delay_class 1 1 # 1й пул первого класса
delay_class 2 1 # 2й пул первого класса
delay_class 3 3 # 3й пул третьего класса


Определяем принадлежность юзеров к пулу. Принадлежность нужно определять по одному ACL на строку. Если написать в одну строку несколько ACL, то в пул попадет только первый, а остальные - нет. По крайней мере на Squid 2.5.STABLE10 работает именно так.

delay_access 1 allow vasya
delay_access 1 allow kolya
delay_access 1 allow petya
delay_access 1 allow masha
delay_access 1 deny all
delay_access 2 allow director
delay_access 2 deny all
delay_access 3 allow office1
delay_access 3 allow office2
delay_access 3 allow office3
delay_access 3 deny all


Задаем ограничения по скорости.

delay_parameters 1 16000/16000 # 128K на всех
delay_parameters 2 32000/32000 # 256K на всех
delay_parameters 3 32000/32000 16000/16000 -1/-1 #256K на всех, каждой подсети 128K
Категория: Жизнь Сисадмина | Добавил: Capitoshka (19.04.2008) | Автор: Константин Пронин
Просмотров: 4816 | Комментарии: 1 | Рейтинг: 0.0/0 |
Всего комментариев: 1
1 McSim  
0
Приветствую.
Немного непонятна фраза:
> Если размер буфера и его скорость заполнения равны, то клиент всегда качает с максимальной скоростью.
что тут понимается под "максимальной скоростью"?
Максимальная скорость заполнения буфера?
Спасибо

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск

Друзья сайта

Диаграмма вирусной активности в сети за последние 24 часа
Статистика
Copyright MyCorp © 2024