Apakah mungkin untuk membatasi kecepatan unduhan wgetatau curl?
Apakah mungkin untuk mengubah nilai throttle saat sedang mengunduh?
SIGSTOPatau ctrl + z dan melanjutkannya nanti dengan SIGCONTatau fg. Ini akan menghentikan proses pengunduhan.
Apakah mungkin untuk membatasi kecepatan unduhan wgetatau curl?
Apakah mungkin untuk mengubah nilai throttle saat sedang mengunduh?
SIGSTOPatau ctrl + z dan melanjutkannya nanti dengan SIGCONTatau fg. Ini akan menghentikan proses pengunduhan.
Jawaban:
Ya, dukungan wget dan curl membatasi laju unduhan Anda. Kedua opsi disebutkan secara langsung di halaman 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.
Misalnya: 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.
Misalnya: wget --limit-rate=423k
wgetatau curlprogram interaktif.
wgetatau curlmemproses dan melanjutkan dengan wget -catau curl -C. Jika Anda benar-benar perlu mengkonfigurasi ulang proses yang sedang berjalan, gunakan tetesan dengan daemon - tetapi pengaturannya agak rumit. Atau, lihat ke traffic shaping - lagi, setup jika rumit.
2 tahun kemudian saya akan melempar berita gembira ini, sementara wgetdan curltidak interaktif, setidaknya wget(dan mungkin curltetapi saya tidak tahu pasti) memiliki -csaklar (yang merupakan kelanjutan dari tempat saya berhenti mengunduh sebelumnya). Jadi, jika Anda perlu mengubah kecepatan Anda di tengah pengunduhan dan Anda mungkin menggunakan -csakelar itu --limit-rate=xmaka Anda bisa berhenti wgetdan memulai kembali dengan kecepatan yang berbeda dan itu akan berubah.
Dimungkinkan untuk membatasi tingkat lalu lintas menggunakan tcdan netemalat tetapi ini akan membatasi tingkat untuk antarmuka jaringan komputer. Saya berasumsi bahwa Anda hanya menggunakan wgetatau curldan tidak ada aplikasi lain yang bertukar traffic melalui antarmuka jaringan.
tc menggunakan Token Bucket Filter (TBF) untuk mengontrol laju.
Salah satu contoh TBF adalah sebagai berikut (ref. Http://www.lartc.org/manpages/tc-tbf.html ):
Untuk melampirkan TBF dengan laju maksimum berkelanjutan 0,5mbit / dt, puncak 1,0mbit / dt, buffer 5kilobita, dengan batas ukuran antrian pra-bucket dihitung sehingga TBF menyebabkan paling banyak 70ms latensi, dengan perilaku puncak sempurna yang sempurna , isu:
# tc qdisc add dev eth0 root tbf rate 0.5mbit \ burst 5kb latency 70ms peakrate 1mbit \ minburst 1540
Contoh lain dari usign tc dan netem adalah sebagai berikut (ditemukan di http://www.linuxfoundation.org/collaborate/workgroups/networking/netem ):
Tidak ada kontrol laju bawaan pada disiplin netem, sebagai gantinya gunakan salah satu disiplin lain yang melakukan kontrol laju. Dalam contoh ini, kami menggunakan Token Bucket Filter (TBF) untuk membatasi output.
Untuk menambahkan penundaan setiap paket melalui antarmuka eth0
# tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
untuk menambahkan kecepatan data dalam tbf, ukuran buffer paket dan batas burst maksimum
# tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
Untuk melihat daftar aturan yang ditetapkan dalam tc untuk antarmuka eth0
# tc -s qdisc ls dev eth0
Output dari perintah di atas akan seperti di bawah ini
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 )
Periksa opsi untuk buffer dan batas karena Anda mungkin menemukan Anda membutuhkan default lebih besar dari ini (mereka dalam byte)