The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Динамическое распределение канала между активными юзерами"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Настройка Squid и других прокси серверов (Public)
Изначальное сообщение [Проследить за развитием треда]

"Динамическое распределение канала между активными юзерами"  
Сообщение от IT_Prof email(??) on 04-Июн-06, 01:48 
Перечитал кучу статей, но так и не понял, как можно при помощи Delay Pools решить мою задачу и можно ли вообще.

Задача такова:

Есть Squid 2.5 Stable 14
Есть домашняя сеть из 12 машин
Все само-собой сидят в инете не одновременно.
Хотелось бы, чтобы канал (128 Кбит/с) делился поровну между всеми "активными" (т.е. теми, кто сейчас что-либо качает из инета) пользователями. К примеру, если активно 2 пользователя, то каждому выдается по 64 Кбит/с, если 8 - то каждому по 16 Кбит/с. На мой взгляд - это самый оптимальный вариант. Возможно ли это реализовать и как?

P.S. Очень хотелось бы услышать на это ответ товарища DeadLoco :)

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Динамическое распределение канала между активными юзерами"  
Сообщение от ipmanyak (??) on 05-Июн-06, 09:56 
>Перечитал кучу статей, но так и не понял, как можно при помощи
>Delay Pools решить мою задачу и можно ли вообще.
>
>Задача такова:
>
>Есть Squid 2.5 Stable 14
>Есть домашняя сеть из 12 машин
>Все само-собой сидят в инете не одновременно.
>Хотелось бы, чтобы канал (128 Кбит/с) делился поровну между всеми "активными" (т.е.
>теми, кто сейчас что-либо качает из инета) пользователями. К примеру, если
>активно 2 пользователя, то каждому выдается по 64 Кбит/с, если 8
>- то каждому по 16 Кбит/с. На мой взгляд - это
>самый оптимальный вариант. Возможно ли это реализовать и как?
>
>P.S. Очень хотелось бы услышать на это ответ товарища DeadLoco :)
совсем динамически сквид рулить не умеет! оптимально тебе лучше сделать пул класса 2 .
128кбит -  это 16384 байт/сек
acl special_users src 192.168.1.0/255.255.255.0
http_access allow special_users
delay_pools 1
delay_class 1 2
delay_access 1 allow special_users
delay_access 1 deny all
delay_parameters 2 12000/12000 1000/4000
канал сквиду  - 12000 байт/секд, а индивидуально на каждого юзверя ведерки по 4000байт, а струйка в него в 1000 байт/сек !  (сначала быстро усосет 4000 байт, а потом будет лить со скоростью в 1000б/cек)  точнее - быстро будет усасывать объекты размером до 4000 байт, объекты больше 4000 байт  будет сосать на скорости 1000 байт/сек  (типа  mp3,mpeg4 и др)
16384-12000=4384  оставили на другие протоколы (smtp/pop  и др)
1000/4000  - можешь менять на свое усмотрение, в случае увеличения последнего параметра -  юзеры будут активно конкурировать между собой за полосу пропускания при большом числе юзеров .  Короче подбери себе оптмальное число, принцип delay pool тебе обрисован.


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Динамическое распределение канала между активными юзерами"  
Сообщение от DeadLoco (??) on 05-Июн-06, 16:48 
>Задача такова:
>
>Хотелось бы, чтобы канал (128 Кбит/с) делился поровну между всеми "активными" (т.е.
>теми, кто сейчас что-либо качает из инета) пользователями. К примеру, если
>активно 2 пользователя, то каждому выдается по 64 Кбит/с, если 8
>- то каждому по 16 Кбит/с. На мой взгляд - это
>самый оптимальный вариант. Возможно ли это реализовать и как?
>
>P.S. Очень хотелось бы услышать на это ответ товарища DeadLoco :)

Большое спасибо за доверие, постараюсь оправдать.

1. Ваша задача смысла не имеет. Зачем ограничивать пользователя только потому, что он не один в сети? У одного качается радио на 24 кбита/сек, а другой выкачивает кино на скорости 200 кбайт/сек. Пользователей нельзя равнять под одну гребенку - они этого не поймут.

2. Сквид не имеет средств динамического выделения полосы - и это правильно, не царское это дело. Но зато есть возможность управлять "справедливостью" деления полосы на уровне, скажем, IPFW из FreeBSD. Для этого достаточно организовать в DUMMYNET достаточно длинную очередь, в которую будут ставиться все соединения вашего сквида. При этом можно гарантироваться, что, как минимум, качатель фильма не задавит слушателя радио, а слушатель радио своим присутствием не отъест ненужную ему половину канала.

Но только сначала хорошенько прочитайте про внутреннее устройство DUMMYNET, там наделать делов - проще простого. Для линухов родным аналогичным инструментом является AltQ.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Динамическое распределение канала между активными юзерами"  
Сообщение от IT_Prof (??) on 05-Июн-06, 17:05 
>1. Ваша задача смысла не имеет. Зачем ограничивать пользователя только потому, что
>он не один в сети? У одного качается радио на 24
>кбита/сек, а другой выкачивает кино на скорости 200 кбайт/сек. Пользователей нельзя
>равнять под одну гребенку - они этого не поймут.

С этим полностью согласен.

>2. Сквид не имеет средств динамического выделения полосы - и это правильно,
>не царское это дело. Но зато есть возможность управлять "справедливостью" деления
>полосы на уровне, скажем, IPFW из FreeBSD. Для этого достаточно организовать
>в DUMMYNET достаточно длинную очередь, в которую будут ставиться все соединения
>вашего сквида. При этом можно гарантироваться, что, как минимум, качатель фильма
>не задавит слушателя радио, а слушатель радио своим присутствием не отъест
>ненужную ему половину канала.

>Но только сначала хорошенько прочитайте про внутреннее устройство DUMMYNET, там наделать делов
>- проще простого. Для линухов родным аналогичным инструментом является AltQ.

Уже полез читать про DUMMYNET. У меня стоит FreeBSD. Какие тогда должны быть настройки пулов в сквиде при использовании DUMMYNET?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Динамическое распределение канала между активными юзерами"  
Сообщение от DeadLoco (??) on 05-Июн-06, 17:51 
>Уже полез читать про DUMMYNET. У меня стоит FreeBSD. Какие тогда должны
>быть настройки пулов в сквиде при использовании DUMMYNET?

При делении канала средствами DUMMYNET настройки делей-пулов мало влияют.

Собственно, при организации единственной QUEUE мы получаем "справедливую" очередь пакетов, где все пакеты из разных ТСР-сессий имеют равные шансы пройти через канал. В нашем случае, мы загоняем в очередь все ТСР-пакеты, где источником являются порты 80, 8080, 3128, являющиеся входящими по отношению к наружному интерфейсу и, желательно, имеющие флаг ESTABLISHED. Внутренняя организация QUEUE обеспечивает (но не гарантирует), что прохождение равноприоритетных пакетов из равноприоритетных сессий будет проходить в соответствии с политикой WF2Q+. Этим можно добиться мирного сосуществования сессий - но только путем натурных экспериментов.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Динамическое распределение канала между активными юзерами"  
Сообщение от IT_Prof (??) on 06-Июн-06, 17:54 
>Собственно, при организации единственной QUEUE мы получаем "справедливую" очередь пакетов, где все пакеты из разных ТСР-сессий имеют равные шансы пройти через канал.

Я так понял, что Dummynet "делит канал" поровну между всеми сессиями. Если первый юзер качает файл, а второй слушает радио, то тогда выходит, что в данный момент активны две "TCP-сесиии" и dummynet "делит" канал на двоих - все по честному. Но если первый юзер качает по прежнему файл, а второй слушает радио, открывает одновременно 10 страниц в броузере и ставит 2 файла на закачку, то у второго сессий гораздо больше и у него будет преимущество. Т.е. необходимы еще дополнительные ограничения? Например на кол-во одновременных сеесий дял каждого юзера? Или я что-то не правильно понимаю?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Динамическое распределение канала между активными юзерами"  
Сообщение от DeadLoco (??) on 07-Июн-06, 14:07 
> Т.е. необходимы еще дополнительные ограничения?
> Например на кол-во одновременных сеесий дял каждого юзера?
> Или я что-то не правильно понимаю?

Нет, все верно. Ограничение количества сессий - непременный инструмент. Пользователи довольно быстро приходят к пониманию, что "все и сразу" - так же недостижимо "в интернете", как и в оффлайне. Это дает им путь к душевной гармонии, просветлению и постижению дхармы. Они начинают усмирять свою суетность, находя радость в быстром скачивании только одного, но нужного файла.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "Динамическое распределение канала между активными юзерами"  
Сообщение от DeadLoco (??) on 07-Июн-06, 14:09 
Вы только не поймите меня правильно ;)
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

8. "Динамическое распределение канала между активными юзерами"  
Сообщение от IT_Prof (??) on 07-Июн-06, 14:26 
>Пользователи довольно быстро
>приходят к пониманию, что "все и сразу" - так же недостижимо
>"в интернете", как и в оффлайне. Это дает им путь к
>душевной гармонии, просветлению и постижению дхармы. Они начинают усмирять свою суетность,
>находя радость в быстром скачивании только одного, но нужного файла.

Поистине золотые слова!

Интересно, можно ли в сквиде сделать так, чтобы при превышении юзером разрешенного количества сессий, его редиректило на страницу с таким текстом:
-------------------------------------------------------------------------------------
Поймите, что "все и сразу" - так же недостижимо в интернете, как и в оффлайне. Осознав это, вы найдете путь к душевной гармонии, просветлению и постижению дхармы. Начните усмирять свою суетность, найдите радость в быстром скачивании только одного, но нужного файла!
--------------------------------------------------------------------------------------

Надеюсь, я не нарушу в этом случае ничьи авторские слова? :)

P.S. Спасибо за содержательные и интересные ответы.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

9. "Динамическое распределение канала между активными юзерами"  
Сообщение от DeadLoco (??) on 07-Июн-06, 19:42 
>Интересно, можно ли в сквиде сделать так, чтобы при превышении юзером разрешенного
>количества сессий, его редиректило на страницу с таким текстом:
>-------------------------------------------------------------------------------------
>Поймите, что "все и сразу" - так же недостижимо в интернете, как
>и в оффлайне. Осознав это, вы найдете путь к душевной гармонии,
>просветлению и постижению дхармы. Начните усмирять свою суетность, найдите радость в
>быстром скачивании только одного, но нужного файла!
>--------------------------------------------------------------------------------------
>
>Надеюсь, я не нарушу в этом случае ничьи авторские слова? :)

Разумеется, вы можете использовать следующую конструкцию:

acl                     IMPUDENCE       maxconn 10
http_access             deny            IMPUDENCE
deny_info               DKHARMA         IMPUDENCE

где DKHARMA - хтмл-файлик с соответствующей притчей, лежащий в каталоге с остальными сообщениями об ошибках.

Следует только помнить, что в норме сквид не отклоняет запросы, которые не укладываются в величину maxconn, а задерживает их в очереди, и выполняет по мере освобождения очереди запросов для данного клиента. То-есть, в норме клиенты НИКОГДА не увидят этого сообщения. Но при закачке, предположим, Регетом, очередная сессия, превысившая лимит сессий, вместо требуемого файла получит объект отличной от требуемой длины, что выбьет регет из колеи. И получено не будет ничего. Кроме нравоучительного сообщения. Вероятно. Не проверял.

Копирайтов на все вышесказанное нету, потому что здесь нету мудрости, а одна сплошная суровая правда жизни. СтОит один раз юзерам сказать, что качать в одну сессию - быстрее, и они быстренько проникнутся и приобщатся. Проверено.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру