มีวิธีใดที่จะทราบว่าแอพพลิเคชั่นใดที่ใช้แบนด์วิดท์ส่วนใหญ่ใน Linux หรือไม่? [ปิด]


56

ฉันกำลังหายูทิลิตีที่สามารถแสดงให้ฉันเห็นว่าแบนด์วิดท์แต่ละขั้นตอนใช้งานเท่าไร มันควรจะพิมพ์ข้อมูลและออกจากที่ฉันต้องการที่จะฟีดรายการที่เป็น Conky

คำตอบ:


71

คุณสามารถลองNetHogs

NetHogs เป็นเครื่องมือ 'net top' ขนาดเล็ก แทนที่จะหมดจราจรลงต่อโปรโตคอลหรือต่อเครือข่ายย่อยเช่นเครื่องมือส่วนใหญ่ทำกลุ่มมันแบนด์วิดธ์โดยกระบวนการ NetHogs ไม่พึ่งพาโมดูลเคอร์เนลพิเศษที่จะโหลด หากมีการรับส่งข้อมูลเครือข่ายจำนวนมากในทันใดคุณสามารถเปิดไฟขึ้น NetHogs และดูว่า PID ใดเป็นสาเหตุของปัญหานี้ในทันที สิ่งนี้ทำให้ง่ายต่อการระบุโปรแกรมที่ใช้งานไม่ได้และใช้แบนด์วิดท์ของคุณทันที

NetHogs_Screenshot


เกือบสิ่งที่ฉันต้องการ แต่มันก็ไม่ได้ทำงาน :(
vava

แล้วอะไรที่ใช้ไม่ได้ ข้อผิดพลาดใด ๆ มันไม่ได้เริ่มเลยใช่ไหม คอนโซลเอาต์พุต
Milde

มันใช้งานไม่ได้กับ ipv6
zb '29

คุณต้องเรียกใช้มันในฐานะรูท แนะนำโหมด Promiscous sudo nethogs -p eth2. คุณต้องระบุอีเธอร์เน็ตของคุณหากไม่ได้เป็น eth0 ตามค่าเริ่มต้น
Anandu M Das

@vava มีปัญหากับ repo หนึ่งตัวแก้ไขใน 0.8.1 แต่คุณต้องสร้างจากแหล่งที่มา (ซึ่งง่ายมาก) ดูโพสต์นี้: askubuntu.com/questions/726601/…
แมทธิว

6

มีค่อนข้างน้อยที่ระบุไว้ที่นี่

รายการโปรดของฉัน แต่ยังคงiftopและtcpdump Wiresharkยังเป็นตัวเลือกที่ดีมาก


ฉันมีปัญหาด้านจริยธรรมกับ Wireshark หากไม่ได้อยู่คนเดียวในเครือข่าย ... หากคุณไม่มีวิธีที่จะตรวจสอบเฉพาะ localhost ซึ่งในกรณีนี้ฉันสนใจ
Gnoupi

5
หากคุณไม่ได้เปิดใช้งานโหมดที่หลากหลายควรจับภาพทราฟฟิกที่ส่งไปยังโฮสต์ของคุณเท่านั้น
Amok

อืมไม่มีเครื่องมือใดที่สามารถบอกได้ว่ากระบวนการใดที่ใช้แบนด์วิดท์ส่วนใหญ่และนั่นคือสิ่งที่ฉันต้องการ
vava

5

ลองatop ... เพื่อให้ได้ประโยชน์สูงสุดคุณอาจต้องเปิดใช้งานแพตช์เคอร์เนลเพิ่มเติม (แพตช์การบัญชี I / O)

หากatopไม่ใช่ตัวเลือกให้ใช้netstat -anp --inet(เป็นรูท) เพื่อแสดงรายการพอร์ต TCP / UDP ที่ใช้งานอยู่โดยกระบวนการใด (หรืออาจใช้lsofสำหรับกระบวนการนั้น) จากนั้นทำซ้ำในแต่ละกระบวนการที่มีซ็อกเก็ตเปิดและแนบกับมันโดยใช้ltrace -Sหรือstraceดูที่การอ่านเขียนส่งและรับหรือใช้tcpdumpกับตัวกรองที่ระบุที่อยู่ IP ในเครื่องของคุณและพอร์ต TCP / UDP ที่ระบุไว้

atopแน่นอนว่าสะดวกที่สุดในบรรดา ... ถ้าคุณมีและการสนับสนุนเคอร์เนลที่จำเป็น ในอดีตที่ผ่านมาผมได้มีลูกค้าและนายจ้างตั้งค่าระบบพิเศษ (แตกต่างจากภาพการผลิตของพวกเขา) เพื่อวัตถุประสงค์ในการสนับสนุนของ I / O atopโปรไฟล์ใช้ อย่างไรก็ตามเทคนิคอื่น ๆ เหล่านี้จะพาคุณไปที่นั่น

ฉันแน่ใจว่าเราสามารถทำอะไรบางอย่างด้วย SystemTap ... แต่ฉันไม่รู้สูตรง่าย ๆ ที่ทำมาก่อนสำหรับการทำเช่นนี้ SystemTap เป็นเครื่องมือวิเคราะห์การเขียนโปรแกรมเป็นอย่างมาก


หากคุณเพียงต้องการทราบว่ากระบวนการใดที่ใช้งานเครือข่ายไม่ใช่แบนด์วิดท์จริงที่ใช้คุณสามารถใช้netstat -anp --inetและตรวจสอบRecv-QและSend-Qคอลัมน์ได้
golimar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.