здравствуйте.
подскажите такой вопрос, а именно по шейперу (нарезка скорости для пользователей). в данный момент использую оборудование Микротик с ROS, с построением деревьев классов с очередями PCQ, как бы все работает, но у этого метода есть один недостаток, например есть три группы пользователей с тарифами 1,2 и 3Мбит\с и общий канал 10Мбит\с, количество пользователей в каждой группе разное, каждая группа имеет право занимать весь канал если он свободен и так же у нее есть параметр Limit.At который дает гарантированную ширину канала даже есть он будет полностью забит, это параметр вычисляется из данных общей ширины канала и количества пользователей в группе чем больше пользователей в группе относительно других групп и чем выше скоростной тариф этой группы тем он выше, проблема вся в том, что автоматически нет возможности определять сколько онлайн клиентов в каждой группе и поэтому расчет ведется из расчета максимального количества, что и создает проблемы, а именно например согласно тарифам группе со скоростью 3Мбит\с гарантированный канал сделан как 8Мбит\с а на тарифе 1Мбит\с гарантированный 300Кбит\с, на 2Мбит\с 1.7Мбит\с, проблема в том, что бывает такая ситуация что на тарифе 3Мбит\с работаю 3 клиента и они качают торрентом и соответственно забирают всю свою полосу в 8Мбит\с и получают каждый по 2.6Мбит\с что примерно согласно их тарифу, на тарифе 2Мбит\с работает один клиент и тоже качает торреном и получает свои 1.7Мбит\с, а на тарифе 1Мбит\с работают два клиента и на двоих у них 300Кбит\с то есть по 150Мбит\с, как бы канал забит, но он поделен не поровну в процентном соотношении, если поменять расчеты согласно онлайн клиентов, то все как бы встает на свои места, но для этого надо писать какой то скрип который это будет делать.
вопрос - как это можно реализовать на линукс системе, что бы гарантированно правильно делить канал между абонентами?