Не уверен что это то, но возможно, что дело не squid, а в методе начального разгона протокола tcp, это особенно заметно при переходе с большой скорости на маленькую. У меня на одной работе скорость закачки с внешенго мира первые 2-5 секунд показывает 1000-800КБайт/с, потом падает до 300-500 (зависит от того как канал нагрузили). Но если я качаю что-либо от провайдера, то в начале как есть 2,5МБайта/с так и держится до самого конца. А на другой канал максимум 160Кбит/с, так там в начальній момент может показать до 100КБайт/с, а потом всегда падает до 20КБайт/с. Такие скачки скорости наблюдаются и под UserGate и под squid.
И опять нужно смотреть не среднюю скорость, а мгновенную, потому как средняя может быть выше, чем есть в реальности.
Что не представляю, так это как ограничить скорость после прокси для какого-то пользователся, ведь все пакеты которые выходят через внешний интерфейс обезличены. А резать скорость до внешнего интерфейса нет смыла. У себя проблему разграничения скорости решил так: выделил на всех кусочек канала, и всех пользователей в это кусок засунул. И дальше всех предупредил, что если кто-то будет очень сильно качать, то при этом у всех остальных естественно скорость упадет. Посему любите друг друга, и не стройте друг другу гадостей. Плюс настроил шефу постоянный просмотр статистики кто куда ходит, и сколько чего качает. В общем скорость была ограничена морально
Да, пользователей не много, в большом коллективе думаю что такой фокус не прокатит.
Добавлено: Только что провел эксперимент - дома хожу в инет через проксю на моей машине (UserGate). Запустил снифер плюс глазомер на лампочки ADSL модема. Выбрал файл в опере для закачки (ссілка на WinGate6.1.1.1077-USE.EXE), но что с ним делать (сохранить, открыть) не говорил. Итог, пока ожидался мой ответ, снифер зафиксировал движение пакетов, глазомер зафиксировал высокую сетевую активность. Решил сходить покурить ничего не трогая. Когда вернулся, снифер движения пакетов не фиксировал, ADSL тоже. Нажал сохранить. В итоге файл размером 11,3Мб был сохранен в течении 1секунды. Размер кеша прокси увеличился на 11 мегабайт, и даже был найден в кеше этот файл (файл был найден до того как была нажата кнопка сохранить). Думаю, что squid, поступает также, до ответа (положительного или отрицательного) начинает кэширование.
Вывод: алгоритм начального разгона протокола tcp ни в чем не виноват