Cukup mudah menggunakan tc
dengan Stochastic Fairness Queuing (SFQ) untuk mengonfigurasi pembagian bandwidth yang adil antar aliran , tetapi aplikasi dapat membuka banyak aliran dan mendapatkan pembagian bandwidth yang tidak adil. Apakah mungkin untuk mengonfigurasi pembagian bandwidth yang adil antar aplikasi bukan?
Mengelompokkan setiap aplikasi ke dalam cgroup tampaknya merupakan langkah pertama yang jelas. Jika SFQ mendukung hashing pada ID kelas, akan mudah untuk menggunakan tc filter
untuk menetapkan setiap cgroup sebuah ID kelas. Sayangnya, SFQ sepertinya tidak mendukung hal ini. Pendekatan lain yang menjanjikan adalah menggunakan CBQ, yang melakukan Weighted Round Robin di seluruh kelas. Sayangnya, menyamakan semua bobot sepertinya tidak berhasil.
Apakah ada cara lain untuk membagi bandwidth antar cgroup secara adil?
Jawaban yang Diterima:
Lihat pengontrol cgroup net_cls. Pada dasarnya melampirkan tag khusus (didefinisikan dalam /mntpoint/net_cls.classid
ke setiap paket yang berasal dari soket yang terkait dengan aplikasi di cgroup itu. Anda nanti dapat menggunakan 'tag' ini sebagai classid
di filter yang dilampirkan ke qdisc untuk meneruskan lalu lintas ke kelas yang berbeda berdasarkan cgroup asal lalu lintas.
Satu-satunya dokumentasi yang saya temukan tentang topik ini adalah beberapa slide Red Hat [HTML via Google].