Saya menyadari banyak pertanyaan serupa telah diajukan, tetapi sejauh ini saya belum menemukan solusi untuk masalah saya.
Saya memiliki server linux virtual (menjalankan Debian Squeeze) yang saya gunakan untuk menguji kecepatan situs web untuk mengukur peningkatan dan penurunan waktu buka situs web tersebut. Saya mencoba membatasi bandwidth dan latensi server ini agar dapat mendekati waktu muat dunia nyata di situs web, tetapi sejauh ini gagal.
Yang saya inginkan secara khusus adalah sebagai berikut:
- Untuk mengatur latensi masuk dan keluar 50 ms.
- Untuk menetapkan batas bandwidth masuk 512 kbps.
- Untuk menetapkan batas lebar pita keluar 4096 kbps.
Saya sudah membaca di netem dan menggunakan tc
perintah, tapi itu masih sedikit di atas kepala saya. Saya telah berhasil menyusun perintah ini untuk mengontrol latensi yang tampaknya berfungsi, tetapi saya bahkan tidak yakin apakah itu hanya menangani latensi keluar atau keduanya:
tc qdisc add dev eth0 root netem delay 50ms
Adakah pakar jaringan di sekitar yang dapat membantu saya?
Edit:
Setelah penelitian lebih lanjut, saya sudah setengah jalan ke tujuan saya, menggunakan perintah ini semua lalu lintas keluar berperilaku seperti yang saya inginkan:
tc qdisc add dev eth0 root tbf rate 4.0mbit latency 50ms burst 50kb mtu 10000
Namun, saya masih belum dapat membatasi lalu lintas yang masuk dengan benar. Saya telah belajar bahwa saya seharusnya menggunakan "Ingress Policer filter" Saya sudah mencoba melakukan hal itu dengan perintah di bawah ini, bermain-main dengan nilai yang berbeda, tetapi tidak berhasil.
tc qdisc add dev eth0 ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match ip src 0.0.0.0/0 flowid :1 police rate 1.0mbit mtu 10000 burst 10k drop
Bandwidth dipengaruhi oleh perintah, nilai-nilai di atas membuat kecepatan mulai dari 2MB / s dan, saat transfer berlangsung, perlahan-lahan turun menjadi sekitar 80-90 kB / s yang dicapai setelah sekitar 30 detik transfer.
Ada gagasan tentang apa yang saya lakukan salah?
sumber
netem delay 50ms
tidak membatasi latensi. Ini meningkatkan latensi50ms
dibandingkan dengan apa yang seharusnya.Jawaban:
Saya akhirnya memutuskan untuk hanya mengatur bandwidth keluar / latensi pada server, dan kemudian melakukan hal yang sama pada klien, secara efektif mencapai hasil yang sama.
Ini adalah perintah yang saya jalankan di server dan klien masing-masing untuk mencapai tujuan saya:
Server: 4 Mbit 50 ms
Klien: 512 kbit 50 ms
sumber
Sekitar 80-90 kByte / s adalah tentang apa yang diharapkan
Anda meminta data yang masuk dibuang saat mencapai 1 mBit / s, itu sekitar 125 kByte / s. Server jauh kemudian akan turun menjadi jauh lebih rendah dari itu (mungkin setengah, tidak yakin). Setelah itu, semua paket masuk, sehingga ujung jarak jauh perlahan-lahan menambah kecepatan hingga 125 kByte / s tercapai lagi. Anda mendapatkan throughput rata - rata jauh di bawah 125 kByte / s, yang merupakan ciri khas dari ingress forming.
Saya agak terkejut bahwa kecepatannya harus mencapai 2 MByte / s dengan filter kebijakan masuknya sudah ada. Di mana Anda mengukur - di klien hilir (programm) atau di beberapa router hulu? Atau mungkin Anda pertama kali memulai koneksi dan hanya setelah itu Anda menendang filter kebijakan masuknya?
sumber