Расчёт динамической скорости пользователей: код #1 базовый алгоритм
Расчёт динамической
скорости пользователей: код #1 базовый алгоритм
Цель:
Поделить свободный канал между пользователями, стараясь не вызывать перегрузок. Желательно что бы пользователи на тестах скорости видели запредельные скорости.
Решение:
Эмпирически было установлено что если пользователь за 1-у минуту не перекачивает 19.8-24Мбайт, то он пользуется тестом скорости ( speedtest). Cредняя скорость загрузки за минуту (ADSМ) - обьем скачанный за 1 минуту поделенный на 60 сек. так вот ADSМ 330-400Кбайт.
Так же такая загрузка (даже меньше) при обычном и даже активном веб-сёрфинге (тестировал Я — непрерывно открывал закладки в течении 1-ой минуты).
У Меня пользователи которые получают «гарантированную» скорость и нарезаются динамически используют один канал.
Алгоритм:
Высчитываем загрузку канала статическую (NBS) — сколько занято под пользователей у которых: статическая скорость, ADSМ.
Высчитываем загрузку канала динамическую (NBD) — сколько занято под пользователей у которых ADSМ >400Кбайт.
Весь максимально допустимый канал (AMAC).
Высчитываем свободную полосу (FC):
FC=AMAC-NBS
Высчитываем предельную скорость пользователя(MSU):
MSU=FC/количество динамических пользователей