Est-il possible de limiter (limiter) la vitesse de téléchargement de wget
ou curl
?
Est-il possible de modifier la valeur de l'accélérateur pendant le téléchargement?
Oui, les supports wget et curl limitent votre taux de téléchargement. Les deux options sont directement mentionnées dans la page de manuel.
--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.
Par exemple: 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.
Par exemple: wget --limit-rate=423k
2 ans plus tard, je jetterai cette friandise, tandis que wget
et curl
ne sont pas interactifs, au moins wget
(et éventuellement curl
mais je ne sais pas pour sûr) a le -c
switch (qui signifie continuer à partir du point où j'ai interrompu le téléchargement plus tôt). Donc, si vous devez modifier votre vitesse au milieu d'un téléchargement et que vous avez probablement utilisé le -c
basculer avec le --limit-rate=x
alors vous pourriez arrêter wget
et le redémarrer avec une vitesse différente et cela changerait.
Il est possible de limiter le débit du trafic à l'aide des outils tc
et netem
mais cela limitera le débit de l'interface réseau de l'ordinateur. Je suppose que vous utilisez uniquement wget
ou curl
et qu'aucune autre application n'échange de trafic via l'interface réseau.
tc
utilise Token Bucket Filter (TBF) pour contrôler le débit.
Un exemple de TBF serait le suivant (réf. http://www.lartc.org/manpages/tc-tbf.html ):
Pour attacher un TBF avec un taux maximum soutenu de 0,5 Mbits/s, un pic de 1,0 Mbits/s, un tampon de 5 Ko, avec une limite de taille de file d'attente pré-bucket calculée de sorte que le TBF provoque au plus 70 ms de latence, avec un comportement de pic parfait , problème:
# tc qdisc add dev eth0 root tbf rate 0.5mbit \ burst 5kb latency 70ms peakrate 1mbit \ minburst 1540
Un autre exemple d'utilisation tc et netem serait le suivant (trouvé dans http://www.linuxfoundation.org/collaborate/workgroups/networking/netem ):
Il n'y a pas de contrôle de taux intégré à la discipline netem, utilisez plutôt l'une des autres disciplines qui font le contrôle de taux. Dans cet exemple, nous utilisons Token Bucket Filter (TBF) pour limiter la sortie.
Pour ajouter le retard de chaque paquet allant/venant à travers l'interface eth0
# tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
pour ajouter le débit de données en tbf, la taille du tampon de paquets et la limite de rafale maximale
# tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
Pour voir la liste des règles affectées en tc pour l'interface eth0
# tc -s qdisc ls dev eth0
La sortie de la commande ci-dessus serait comme ci-dessous
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 )
Vérifiez les options de tampon et de limite car vous pourriez trouver que vous avez besoin de valeurs par défaut plus importantes que celles-ci (elles sont en octets)