Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.02.06;
Скачать: CL | DM;

Вниз

ограничение скорости   Найти похожие ветки 

 
FireMan_Alexey ©   (2009-02-08 10:29) [0]

Ув. Мастера!
Есть задача ограничения скорости у моего сервера.
Я реализовал алгоритм замедления, через непосредственную задержку чтения данных из гнезда.
Сталкнулся с такой проблемой:
Изначально реализовывал задержку из расчета
(МАКС скорость)/(Кол-во соединений), но выходит, что есть соединения которые почти ничего не передают, а есть те которым необходимо передавать большое кол-во данных.
Вот вопрос есть ли алгоритм распределения скоростей или какая-нибудь идея, как это реализовать?
Буду благодарен любой подсказке, ссылке, примеру :)
Заранее спасибо!


 
Eraser ©   (2009-02-08 16:14) [1]

> [0] FireMan_Alexey ©   (08.02.09 10:29)

нужно ограничить скорость по каждому соединению. для этого не обязательно при каждой операции чтения/записи вставлять задержки. достаточно примерно раз в секунду проверять сколько данных передано и за какое время, на основе этих данных высчитывать скорость. если скорость больше положенной, то раз в секунду вставлять sleep с задержкой, котороую тоже легко вычислить.


 
FireMan_Alexey ©   (2009-02-09 09:35) [2]

Только понимаеш у меня не одно соединение с сервером от одного клиента, а N - штук. :)


 
Сергей М. ©   (2009-02-09 09:51) [3]


> есть ли алгоритм распределения скоростей или какая-нибудь
> идея, как это реализовать?


По-хорошему, это задача не прикладного сервера, а шейпера в составе, например, автономного роутера.

Не знаю насколько это тебе поможет:

http://www.x-drivers.ru/articles/manuals/12/1.html


 
Anatoly Podgoretsky ©   (2009-02-09 11:18) [4]


> (МАКС скорость)/(Кол-во соединений),

Есть просто не использовать скорость, а только МАКС скорость соединения для потока, можно адаптивно для каждого по своему.

> Только понимаеш у меня не одно соединение с сервером от
> одного клиента, а N - штук. :)

А это разве что то меняет? Или расчитывает это для каждого соединения индивидуально, или как усредненая для всех соединений.



Страницы: 1 вся ветка

Текущий архив: 2011.02.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
4-1245172423
Дмитрий
2009-06-16 21:13
2011.02.06
Как создать консольную форму


3-1252485463
Xmen
2009-09-09 12:37
2011.02.06
Unable to determine field names


15-1287606541
Юрий
2010-10-21 00:29
2011.02.06
С днем рождения ! 21 октября 2010 четверг


2-1290101441
Mitroshin
2010-11-18 20:30
2011.02.06
Старый исходник после компиляции в D2010 (оформление)


6-1234078143
FireMan_Alexey
2009-02-08 10:29
2011.02.06
ограничение скорости