Биллинговая система Nodeny
27 Ноября 2024, 03:20:47 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2 3
  Печать  
Автор Тема: Совершенствование динамического шейпера  (Прочитано 23213 раз)
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« : 21 Августа 2009, 12:45:29 »

Динамический шейпер теперь может работать по времени. Что есть динамическйи шейпер? Это предоставление определенной скорости в зависимости от потребленного клиентом трафика. Например, особо наглым качальщикам постепенно ее понижать ее.

Добавлена фича, учитывающая время суток. Причем может работать как отдельно так и совместно с контролем трафика. Например в тарифе в поле "скрипт" (это уже есть в новой версии) указываются такие строки:

Цитировать
<time 0,1,2,3,4>0:0-10000
<time 18,19,20>0:20000-512:50000-256:100000-128
<time 21>0:20000-400:50000-300
0:0-1024

Как расшифровываются эти строки? В теге <time> указывается час суток, в которые будет действовать данная строка. Часы перечисляются через запятую. Так первое правило будет срабатывать с 0 до 4 часа ночи. Далее все идет по правилам динамического шейпа как ранее.
Т.е:

с 0 до 4 часа ночи каждый абонент тарифа получит 10000 кбит скорости вне зависимости от рафика
с 18 до 20 - скорость указанную в тарифе, но при превышении 20 Гб скорость будет установлена в 512 кбит, 50 Гб - 256 кбит, 100 гб - 128 кбит
в 21 час вереча будет работать правило: скорость тарифа, но при превышении 20Гб - 400 кбит, 50гб -300 килобит
во все остальное время клиентам будет выдана скорость 1024 кбит вне зависимости от трафика.

Отдельно хочу отметить, что фичу заказал один из клиентов и теперь будет получать 50% от продаж этой фичи
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #1 : 21 Августа 2009, 16:55:28 »

Ну тогда было бы интересно, чтобы с 0 до 4 часа ночи трафик не учитывался Подмигивающий
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #2 : 21 Августа 2009, 17:12:27 »

это надо ядро править. Здесь же речь о noserver
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #3 : 21 Августа 2009, 17:16:17 »

это надо ядро править. Здесь же речь о noserver
ну а так получается, что ночью народ накачает без ограничения скорости, а днем скорость хреновая будет - тоже нехорошо )
а что по поводу моего ТЗ на динамический шейпер?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #4 : 21 Августа 2009, 19:01:19 »

а что по поводу моего ТЗ на динамический шейпер?
шейпить разные направления? Так оно и без динамического шейпит только первое
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #5 : 21 Августа 2009, 19:54:31 »

это надо ядро править. Здесь же речь о noserver
ну а так получается, что ночью народ накачает без ограничения скорости, а днем скорость хреновая будет - тоже нехорошо )
а что по поводу моего ТЗ на динамический шейпер?
При верном выставлении лимитов все нормально выходит.

Тех кто качает терабайтами единицы.
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #6 : 21 Августа 2009, 19:55:08 »

а что по поводу моего ТЗ на динамический шейпер?
шейпить разные направления? Так оно и без динамического шейпит только первое
нет
динамический шейпер, который анализирует трафик за последние Х мин, если средняя скорость за этот промежуток времени превышает Y Мбит/с, то шейпер уменьшает скорость абоненту, когда абонент перестает качать, скорость восстанавливается
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #7 : 21 Августа 2009, 20:07:34 »

Для этого надо модифицировать ядро - аккумулировать этот трафик. Я уже рассказывал, что трафик за сутки формируется по окончании этих суток. Напомню для чего это делано. В сетях с числом абонентов несколько десятков тысяч (я испытывал NoDeny как раз на такой) идет интенсивная запись трафика. Особенно это усугубляется, если пишется вся детализация. Это гигабайты информации (не трафика, а информации о нем) записываются в БД. Записать детализацию - это задача более-менее оптимизирована, поскольку запись идет insert с большим хвостом данных, которые записываются скопом. Другой вопрос, если надо апдейтить суточную статистику - здесь не надо вставлять данные, здесь надо к текущим значениям добавлять полученные в последнем срезе. Это возможно, конечно. Но это дополнительная нагрузка на СУБД. А поскольку главный лозунг сетестроителя "секономить", мне пришлось буквально вылизать ядро чтобы оно при максимальном эффекте требовало средних ресурсов. Ради добавления одной фичи, я пока не могу пойти на увеличения нагрузки (хоть и незначительной, но все же) - это ниша NoDeny в первую очередь быть надежной системой, а лояльное использование вычислительных мощностей - одна из составляющих надежности
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #8 : 21 Августа 2009, 20:22:24 »

Для этого надо модифицировать ядро - аккумулировать этот трафик. Я уже рассказывал, что трафик за сутки формируется по окончании этих суток. Напомню для чего это делано. В сетях с числом абонентов несколько десятков тысяч (я испытывал NoDeny как раз на такой) идет интенсивная запись трафика. Особенно это усугубляется, если пишется вся детализация. Это гигабайты информации (не трафика, а информации о нем) записываются в БД. Записать детализацию - это задача более-менее оптимизирована, поскольку запись идет insert с большим хвостом данных, которые записываются скопом. Другой вопрос, если надо апдейтить суточную статистику - здесь не надо вставлять данные, здесь надо к текущим значениям добавлять полученные в последнем срезе. Это возможно, конечно. Но это дополнительная нагрузка на СУБД. А поскольку главный лозунг сетестроителя "секономить", мне пришлось буквально вылизать ядро чтобы оно при максимальном эффекте требовало средних ресурсов. Ради добавления одной фичи, я пока не могу пойти на увеличения нагрузки (хоть и незначительной, но все же) - это ниша NoDeny в первую очередь быть надежной системой, а лояльное использование вычислительных мощностей - одна из составляющих надежности
Ну может тогда добавить еще массив Utraf_prev? И динамический шейпер будет работать не с Utraf, а с Utraf-Utraf_prev
А раз в Х мин делать Utraf_prev=Utraf
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4790



Просмотр профиля
« Ответ #9 : 21 Августа 2009, 20:31:15 »

Да, можно, подоху, суммировать в скрипте. Но если рестартанет скрипт, то данные о трафике потеряются. В целом идея неплохая, подумаю
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #10 : 21 Августа 2009, 22:30:12 »

Да, можно, подоху, суммировать в скрипте. Но если рестартанет скрипт, то данные о трафике потеряются. В целом идея неплохая, подумаю
Ну вот над этим я и думаю Улыбающийся Ну разве что в бд сливать Utraf_prev
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #11 : 31 Августа 2009, 06:12:12 »

Для того чтобы учитывать только входящий трафик при регулировании скорости достаточно ли изменить:

Код:
C  $Utraf{$p->{uid}}=$p->{in1}+$p->{out1};
На  $Utraf{$p->{uid}}=$p->{in1}; #+$p->{out1};

Или я не в том месте трогаю?
« Последнее редактирование: 31 Августа 2009, 06:31:46 от goletsa » Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #12 : 31 Августа 2009, 07:24:05 »

Для того чтобы учитывать только входящий трафик при регулировании скорости достаточно ли изменить:

Код:
C  $Utraf{$p->{uid}}=$p->{in1}+$p->{out1};
На  $Utraf{$p->{uid}}=$p->{in1}; #+$p->{out1};

Или я не в том месте трогаю?

да
Записан
goletsa
NoDeny
Спец
*

Карма: 21
Offline Offline

Сообщений: 973


Просмотр профиля
« Ответ #13 : 31 Августа 2009, 16:11:45 »

Лаконично.
Но на какой вопрос? Улыбающийся
Записан
elite
Начальник планеты
NoDeny
Спец
*

Карма: 52
Offline Offline

Сообщений: 1226

In LAN we trust!

358714596
Просмотр профиля
« Ответ #14 : 31 Августа 2009, 18:03:00 »

Для того чтобы учитывать только входящий трафик при регулировании скорости достаточно ли изменить:

Код:
C  $Utraf{$p->{uid}}=$p->{in1}+$p->{out1};
На  $Utraf{$p->{uid}}=$p->{in1}; #+$p->{out1};
вот так вот Улыбающийся
Записан
Страниц: [1] 2 3
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!