É possível limitar (limitar) a velocidade de download wget
ou curl
?
É possível alterar o valor do acelerador durante o download?
SIGSTOP
ou ctrl + z e continuar mais tarde com SIGCONT
ou fg. Isso deve pausar o processo de download.
É possível limitar (limitar) a velocidade de download wget
ou curl
?
É possível alterar o valor do acelerador durante o download?
SIGSTOP
ou ctrl + z e continuar mais tarde com SIGCONT
ou fg. Isso deve pausar o processo de download.
Respostas:
Sim, suporte a wget e curl limitando sua taxa de download. Ambas as opções são mencionadas diretamente na página de manual.
--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.
Por exemplo: 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.
Por exemplo: wget --limit-rate=423k
wget
nem curl
são programas interativos.
wget
ou curl
processar e continuar com wget -c
ou curl -C
. Se você realmente precisar reconfigurar um processo em execução, use trickle com um daemon - mas a configuração é um pouco complicada. Como alternativa, analise a modelagem de tráfego - novamente, a configuração, se complicada.
Dois anos depois, lançarei esse boato, enquanto wget
e curl
não for interativo, pelo menos wget
(e possivelmente, curl
mas não sei ao certo) tem o -c
interruptor (que significa continuar de onde parei o download anteriormente). Portanto, se você precisar alterar sua velocidade no meio de um download e, presumivelmente, usar o -c
interruptor com o botão --limit-rate=x
, poderá parar wget
e reiniciá-lo com uma velocidade diferente e isso mudará.
É possível limitar a taxa de tráfego usando as ferramentas tc
e netem
, mas isso limitará a taxa da interface de rede do computador. Suponho que você use apenas wget
ou curl
nenhum outro aplicativo esteja trocando tráfego pela interface de rede.
tc
usa o filtro de balde de token (TBF) para controlar a taxa.
Um exemplo de TBF seria o seguinte (ref. Http://www.lartc.org/manpages/tc-tbf.html ):
Para anexar um TBF com uma taxa máxima sustentada de 0,5mbit / s, uma taxa de pico de 1,0mbit / s, um buffer de 5kilobytes, com um limite de tamanho de fila pré-bucket calculado para que o TBF cause no máximo 70ms de latência, com um comportamento perfeito da taxa de pico , questão:
# tc qdisc add dev eth0 root tbf rate 0.5mbit \ burst 5kb latency 70ms peakrate 1mbit \ minburst 1540
Outro exemplo de nome de usuário tc e netem seria o seguinte (encontrado em http://www.linuxfoundation.org/collaborate/workgroups/networking/netem ):
Não há controle de taxa embutido na disciplina netem; em vez disso, use uma das outras disciplinas que efetivamente controlam o índice. Neste exemplo, usamos o TBF (Token Bucket Filter) para limitar a saída.
Para adicionar o atraso de cada pacote que passa / passa pela interface eth0
# tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
para adicionar a taxa de dados em tbf, tamanho do buffer de pacote e limite máximo de burst
# tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
Para ver a lista de regras atribuídas em tc para a interface eth0
# tc -s qdisc ls dev eth0
A saída do comando acima seria a seguinte
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 )
Verifique as opções de buffer e limite, pois você pode achar que precisa de padrões maiores que esses (eles estão em bytes)