Jawaban:
Anda dapat mencoba NetHogs .
NetHogs adalah alat 'net top' kecil. Alih-alih memecah traffic per protokol atau per subnet, seperti yang dilakukan kebanyakan alat, ia mengelompokkan bandwidth berdasarkan proses . NetHogs tidak bergantung pada modul kernel khusus yang akan dimuat. Jika tiba-tiba ada banyak lalu lintas jaringan, Anda dapat menjalankan NetHogs dan segera melihat PID yang menyebabkan ini. Ini membuatnya mudah untuk mengidentifikasi program-program yang menjadi liar dan tiba-tiba mengambil bandwidth Anda.
sudo nethogs -p eth2
. Anda harus menentukan ethernet Anda jika tidak secara default eth0.
Ada beberapa yang tercantum di sini .
Namun favorit saya tetap iftop dan tcpdump . Wireshark juga merupakan pilihan yang sangat bagus.
Coba atop
... untuk memaksimalkannya, Anda mungkin harus mengaktifkan beberapa tambalan kernel tambahan (tambalan akuntansi I / O).
Jika atop
bukan pilihan, gunakan netstat -anp --inet
(sebagai root) untuk memberikan daftar port TCP / UDP mana yang digunakan lsof
untuk memproses (atau mungkin gunakan untuk itu). Dari sana cukup beralih ke setiap proses yang memiliki soket terbuka dan baik melampirkannya menggunakan ltrace -S
atau strace
untuk melihat membaca, menulis, mengirim dan menerima, atau menggunakan tcpdump
dengan filter yang menentukan alamat IP lokal Anda dan port TCP / UDP yang terdaftar.
atop
tentu saja yang paling nyaman dari ini ... jika Anda memilikinya dan dukungan kernel yang diperlukan diinstal. Di masa lalu aku sudah pelanggan dan pengusaha menyiapkan sistem khusus (berbeda dari gambar produksi mereka) untuk tujuan tunggal mendukung I / O profil menggunakan atop
. Namun teknik-teknik lain ini akan membantu Anda.
Saya yakin kami juga bisa melakukan sesuatu menggunakan SystemTap ... tapi saya tidak tahu ada resep mudah dimasak untuk melakukan ini. SystemTap sangat banyak alat analisis pemrograman.
netstat -anp --inet
, dan memeriksa Recv-Q
dan Send-Q
kolom