ฉันกำลังหายูทิลิตีที่สามารถแสดงให้ฉันเห็นว่าแบนด์วิดท์แต่ละขั้นตอนใช้งานเท่าไร มันควรจะพิมพ์ข้อมูลและออกจากที่ฉันต้องการที่จะฟีดรายการที่เป็น Conky
ฉันกำลังหายูทิลิตีที่สามารถแสดงให้ฉันเห็นว่าแบนด์วิดท์แต่ละขั้นตอนใช้งานเท่าไร มันควรจะพิมพ์ข้อมูลและออกจากที่ฉันต้องการที่จะฟีดรายการที่เป็น Conky
คำตอบ:
NetHogs เป็นเครื่องมือ 'net top' ขนาดเล็ก แทนที่จะหมดจราจรลงต่อโปรโตคอลหรือต่อเครือข่ายย่อยเช่นเครื่องมือส่วนใหญ่ทำกลุ่มมันแบนด์วิดธ์โดยกระบวนการ NetHogs ไม่พึ่งพาโมดูลเคอร์เนลพิเศษที่จะโหลด หากมีการรับส่งข้อมูลเครือข่ายจำนวนมากในทันใดคุณสามารถเปิดไฟขึ้น NetHogs และดูว่า PID ใดเป็นสาเหตุของปัญหานี้ในทันที สิ่งนี้ทำให้ง่ายต่อการระบุโปรแกรมที่ใช้งานไม่ได้และใช้แบนด์วิดท์ของคุณทันที
sudo nethogs -p eth2
. คุณต้องระบุอีเธอร์เน็ตของคุณหากไม่ได้เป็น eth0 ตามค่าเริ่มต้น
มีค่อนข้างน้อยที่ระบุไว้ที่นี่
รายการโปรดของฉัน แต่ยังคงiftopและtcpdump Wiresharkยังเป็นตัวเลือกที่ดีมาก
ลอง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
คอลัมน์ได้