wget
またはcurl
のダウンロード速度を調整(制限)することは可能ですか?
ダウンロード中にスロットル値を変更することはできますか?
はい、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
2年後、私はこの一口を投げますが、wget
とcurl
はインタラクティブではありませんが、少なくともwget
(そしておそらくcurl
ですが、私にはわかりません。確かに)-c
スイッチ(ダウンロードを中断したところから続行することを意味します)。したがって、ダウンロードの途中で速度を変更する必要があり、おそらく-c
--limit-rate=x
その後、wget
を停止して別の速度で再起動すると、状況が変化します。
tc
およびnetem
ツールを使用してトラフィックレートを制限することは可能ですが、これによりコンピューターのネットワークインターフェイスのレートが制限されます。 wget
またはcurl
のみを使用し、他のアプリケーションがネットワークインターフェースを介してトラフィックを交換していないことを前提としています。
tc
は、トークンバケットフィルター(TBF)を使用してレートを制御します。
TBFの一例は次のようになります(ref。 http://www.lartc.org/manpages/tc-tbf.html ):
持続最大レートが0.5mbit/s、ピークレートが1.0mbit/s、5キロバイトのバッファでTBFを接続するには、TBFが最大70msのレイテンシを引き起こし、完全なピークレートの動作を実現するように、事前バケットキューのサイズ制限を計算します。 、 問題:
# tc qdisc add dev eth0 root tbf rate 0.5mbit \ burst 5kb latency 70ms peakrate 1mbit \ minburst 1540
Usc tcとnetemの別の例は次のようになります( http://www.linuxfoundation.org/collaborate/workgroups/networking/netem にあります):
Netem分野にはレート制御が組み込まれていません。代わりに、レート制御を行う他の分野の1つを使用してください。この例では、トークンバケットフィルター(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
インターフェイスeth0のtcに割り当てられたルールのリストを表示するには
# 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 )
バッファーと制限のオプションを確認してください。これらよりも大きなデフォルトが必要な場合があります(バイト単位)。