it-swarm.asia

هل هناك طريقة لمعرفة أي تطبيق يستخدم معظم النطاق الترددي في Linux؟

أنا أبحث عن أداة مساعدة يمكن أن تبين لي مقدار النطاق الترددي الذي تستخدمه كل عملية. يجب فقط طباعة البيانات والخروج كما أريد لتغذية تلك القائمة في conky.

56
vava

يمكنك تجربة NetHogs .

NetHogs عبارة عن أداة صغيرة لـ "net top". بدلاً من تقسيم حركة المرور لكل بروتوكول أو لكل شبكة فرعية ، كما تفعل معظم الأدوات ، يقوم بتجميع النطاق الترددي حسب العملية . NetHogs لا تعتمد على وحدة kernel خاصة ليتم تحميلها. إذا كان هناك الكثير من حركة مرور الشبكة فجأة ، فيمكنك تشغيل NetHogs ومعرفة PID الذي يسبب ذلك على الفور. هذا يجعل من السهل تحديد البرامج التي أصبحت متوحشة وتستغل فجأة النطاق الترددي.

NetHogs_Screenshot

71
Milde

هناك عدد غير قليل من المدرجة هنا .

تبقى المفضلة iftop و tcpdump . Wireshark هو أيضا خيار جيد للغاية.

6
BinaryMisfit

جرب atop ... لتحقيق أقصى استفادة منه ، قد تضطر إلى تمكين بعض تصحيحات kernel الإضافية (تصحيحات I/O المحاسبية).

إذا لم يكن atop خيارًا ، فاستخدم netstat -anp --inet (كجذر) لتقديم قائمة بأية منافذ TCP/UDP قيد الاستخدام وبأي عمليات (أو ربما تستخدم lsof لذلك). من هناك ، قم ببساطة بالتكرار عبر كل عملية تحتوي على مقبس مفتوح وإما أن تعلقها باستخدام ltrace -S أو strace للنظر في القراءات أو الكتابة أو الإرسال أو الاستلام أو استخدام tcpdump مع عامل تصفية يحدد عنوان IP (عناوين) IP المحلي الخاص بك و TCP/منافذ UDP التي تم سردها.

atop هو بالتأكيد الأكثر ملاءمة من هذه ... إذا كان لديك وتثبيت دعم kernel الضروري. في الماضي ، كان لدي عملاء وأرباب عمل يقومون بإعداد أنظمة خاصة (تختلف عن صور الإنتاج الخاصة بهم) لغرض وحيد هو دعم إنشاء ملفات تعريف الإدخال/الإخراج باستخدام atop. لكن هذه التقنيات الأخرى سوف تحصل على هناك.

أنا متأكد من أنه يمكننا أيضًا القيام بشيء باستخدام SystemTap ... لكنني لا أعرف أي وصفات سهلة المطبوخة مسبقًا للقيام بذلك. SystemTap هو إلى حد كبير أداة تحليل البرمجة.

5
Jim Dennis