Dimungkinkan untuk membatasi tingkat lalu lintas menggunakan tc
dan netem
alat tetapi ini akan membatasi tingkat untuk antarmuka jaringan komputer. Saya berasumsi bahwa Anda hanya menggunakan wget
atau curl
dan 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)