Apakah ada utilitas untuk membatasi throughput jaringan dari suatu proses setelah diluncurkan? Contoh sederhana: Anda perhatikan bahwa pengguna mengambil semua bandwidth unggah Anda menggunakan scp dan Anda ingin membatasi kecepatan atau mengurangi prioritas transfer.
Saya kira saya bisa menggunakan kombinasi iptables / tc atau pf untuk mencapai itu, tetapi saya bertanya-tanya apakah ada alat "satu-shot" yang tersedia (seperti tetesan dengan opsi --pid ^^)?
Jawaban:
Sayangnya tidak ada solusi untuk FreeBSD. Ada banyak solusi seperti dummynet / ipfw atau altq / pf yang digunakan untuk membatasi penggunaan jaringan berdasarkan pola yang berbeda tetapi tidak pada pid.
Di linux ada cara untuk membatasi penggunaan jaringan berdasarkan pengguna:
Saya pikir tidak ada solusi untuk membatasi pemanfaatan jaringan berdasarkan pid.
sumber
Salah satu proses untuk mendapatkan port jaringan yang digunakan oleh proc. Setelah Anda tahu port mana yang sedang digunakan, Anda bisa menggunakan aturan IPTABLES untuk menilai batas port ini. Artikel-artikel ini harus memberi Anda ide yang lebih baik: http://linux-ip.net/articles/Traffic-Control-HOWTO/ http://blog.edseek.com/~jasonb/articles/traffic_shaping/ http: // wiki. sun.com/pages/viewpage.action?pageId=49906332
sumber
Di Linux, bahkan kombinasi iptables dan tc bisa menjadi masalah yang sulit, karena opsi "--pid-owner" ditinggalkan dari modul iptables "owner" (lihat catatan di bawah tabel di sini ). Faktanya, hanya asosiasi ini (proses paket) yang tampaknya rumit, sementara kita dapat dengan mudah melakukan sisanya, yaitu memfilter dan membatasi paket dengan cukup efisien.
sumber
Saya tidak berpikir ada solusi yang sudah jadi untuk ini. Tetapi, dengan menggunakan alat-alat Linux standar Anda dapat meretas skrip yang akan melakukan hal itu.
Pertama, Anda bisa mendapatkan daftar semua koneksi proses tertentu dengan lsof. Kemudian, Anda dapat membuat kebijakan masuk dengan tc untuk koneksi tersebut.
sumber
Secara kasar, jika Anda menyukai prosesnya hingga +20, maka apa pun yang berjalan pada sistem akan mendapat prioritas dan pekerjaan akan lebih jarang dijadwalkan, sehingga akan lebih sulit untuk mengisi buffer atau paket proses, yang seharusnya mengarah ke beberapa TCP pelambatan. Ini akan sporadis, tetapi mungkin cukup membantu.
sumber