Можно ли ограничить (ограничить) скорость загрузки wget
или curl
?
Можно ли изменить значение газа во время загрузки?
SIGSTOP
или ctrl + z и возобновить его позже с помощью SIGCONT
или fg. Это должно приостановить процесс загрузки.
Можно ли ограничить (ограничить) скорость загрузки wget
или curl
?
Можно ли изменить значение газа во время загрузки?
SIGSTOP
или ctrl + z и возобновить его позже с помощью SIGCONT
или fg. Это должно приостановить процесс загрузки.
Ответы:
Да, поддержка wget и curl ограничивает вашу скорость загрузки. Оба варианта прямо упоминаются на странице руководства.
--limit-rate <speed> Specify the maximum transfer rate you want curl to use. This feature is useful if you have a limited pipe and you'd like your transfer not to use your entire bandwidth. The given speed is measured in bytes/second, unless a suffix is appended. Appending 'k' or 'K' will count the number as kilobytes, 'm' or M' makes it megabytes, while 'g' or 'G' makes it gigabytes. Examples: 200K, 3m and 1G.
Например: curl --limit-rate 423K
--limit-rate=amount Limit the download speed to amount bytes per second. Amount may be expressed in bytes, kilobytes with the k suffix, or megabytes with the m suffix. For example, --limit-rate=20k will limit the retrieval rate to 20KB/s. This is useful when, for whatever reason, you don't want Wget to consume the entire available bandwidth.
Например: wget --limit-rate=423k
wget
ни curl
интерактивные программы.
wget
или curl
обработать или продолжить с помощью wget -c
или curl -C
. Если вам действительно необходимо перенастроить запущенный процесс, используйте ручеек с демоном - но настройка немного сложна. В качестве альтернативы, посмотрите на формирование трафика - опять же, если сложная настройка.
Через 2 года я добавлю этот кусочек, хотя wget
и curl
не являюсь интерактивным, по крайней мере wget
(и, возможно, curl
но я не знаю наверняка) есть -c
переключатель (который означает продолжить с того места, где я остановился ранее). Так что, если вам нужно изменить скорость в середине загрузки, и вы предположительно использовали -c
переключатель с --limit-rate=x
тогда, вы можете остановить wget
и перезапустить его с другой скоростью, и он изменится.
Можно ограничить скорость трафика , используя tc
и netem
инструменты , но это будет ограничивать скорость для сетевого интерфейса компьютера. Я предполагаю, что вы используете только wget
или curl
и никакое другое приложение не обменивается трафиком через сетевой интерфейс.
tc
использует Token Bucket Filter (TBF) для контроля скорости.
Одним из примеров TBF может быть следующий (ссылка http://www.lartc.org/manpages/tc-tbf.html ):
Чтобы подключить TBF с устойчивой максимальной скоростью 0,5 Мбит / с, пиковая скорость 1,0 Мбит / с, 5-килобайтный буфер с пределом размера очереди перед бакетом, рассчитанным так, чтобы TBF вызывал задержку не более 70 мс, с идеальным поведением пиковой скорости , выпуск:
# tc qdisc add dev eth0 root tbf rate 0.5mbit \ burst 5kb latency 70ms peakrate 1mbit \ minburst 1540
Другой пример использования команды tc и netem: ( http://www.linuxfoundation.org/collaborate/workgroups/networking/netem ):
В дисциплине netem нет встроенного контроля скорости, вместо этого используйте одну из других дисциплин, которая действительно контролирует скорость. В этом примере мы используем Token Bucket Filter (TBF) для ограничения вывода.
Добавить задержку каждого пакета, идущего / проходящего через интерфейс eth0
# tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
добавить скорость передачи данных в tbf, размер буфера пакета и максимальный предел пакета
# tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
Чтобы увидеть список правил, назначенных в tc для интерфейса eth0
# tc -s qdisc ls dev eth0
Вывод вышеуказанной команды будет таким, как показано ниже
qdisc netem 1: limit 1000 delay 100.0ms
Sent 0 bytes 0 pkts (dropped 0, overlimits 0 )
qdisc tbf 10: rate 256Kbit burst 1599b lat 26.6ms
Sent 0 bytes 0 pkts (dropped 0, overlimits 0 )
Проверьте параметры для буфера и лимита, так как вы можете найти, что вам нужно больше значений по умолчанию, чем эти (они в байтах)