
Я ищу способ установить ограничение на скорость загрузки для приложения, не ограничивая при этом всю машину.
Вариант использования следующий:
Пользователь (я) создает большой файл с намерением загрузить его на видеохостинг. Однако файлы большие, а интернет-соединение медленное. Поэтому загрузка этих файлов может занять часы (часто десятки часов).
Во время загрузки файлов очень сложно пользоваться интернетом. Из-за полного захвата восходящего потока загрузкой файлов.
Цель — ограничить скорость браузера до 80% от скорости интернет-соединения.
Идеальным решением было бы иметь возможность изменять лимит в процессе загрузки без необходимости перезапускать что-либо или прерывать саму загрузку. (Допустим, пользователь хочет вздремнуть, принять ванну, что-нибудь поесть и т. д. и может временно разрешить загрузке использовать все 100% лимита интернет-провайдера).
решение1
Попробуйте установитьструйка
sudo apt-get install trickle
Trickle — это добровольный, кооперативный формирователь полосы пропускания. Он работает полностью в пользовательском пространстве и очень прост в использовании.
Самым простым применением является ограничение использования полосы пропускания программами.
вот ссылка:http://www.tuxradar.com/content/control-your-bandwidth-trickle
решение2
Да, поэтому можно использовать iptables для маркировки упакованных данных на основе процесса (--pid-owner), а затем использовать tc для ограничения пропускной способности.
Попробуйте прочитатьэта ссылканапример, и посмотрите на формирование исходящего трафика HTTP: просто представьте, что вы делаете то же самое, но заставляете правило маркировки iptables применяться к PID вместо порта 80!