ฉันจะทราบได้อย่างไรว่ากระบวนการใดที่กินแบนด์วิธของฉัน?


184

ฉันคิดว่าฉันเป็นเหยื่อของแมลงที่นี่ บางครั้งในขณะที่ฉันกำลังทำงาน (ฉันยังไม่รู้สาเหตุ) การรับส่งข้อมูลเครือข่ายของฉันสูงถึง 200 KB / s และยังคงเป็นเช่นนั้นแม้จะลำบากฉันก็ไม่ได้ทำอะไรที่เกี่ยวข้องกับอินเทอร์เน็ต

บางครั้งสิ่งนี้เกิดขึ้นกับฉันด้วยการใช้งาน CPU เมื่อมันไม่ฉันเพียงแค่เรียกใช้topคำสั่งที่จะหากระบวนการที่เป็นผู้รับผิดชอบแล้วkillมัน ปัญหาคือ: ฉันไม่มีทางรู้ว่ากระบวนการใดรับผิดชอบการใช้เครือข่ายสูงของฉัน ทั้งตัวตรวจสอบทรัพยากรและtopคำสั่งบอกเพียงการใช้งานเครือข่ายทั้งหมดของฉันเท่านั้นทั้งสองไม่ได้บอกให้ฉันประมวลผลข้อมูลเครือข่ายเฉพาะ

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

คำสั่งiftopให้ผลลัพธ์ที่ไม่เห็นด้วยกับข้อมูลที่รายงานโดยการตรวจสอบระบบทั้งหมด ในขณะที่หลังอ้างว่ามีการรับส่งข้อมูลเครือข่ายสูง แต่เดิมอ้างว่าแทบจะ 1 KB / s

ฉันได้ลองฆ่าสิ่งที่ชัดเจนทั้งหมดแล้ว (Firefox, update-manager, Pidgin, ฯลฯ ) โดยไม่มีโชค จนถึงตอนนี้การรีสตาร์ทเครื่องเป็นวิธีเดียวที่ฉันพบในการกำจัดปัญหา

คำตอบ:


221

ฉันเคยประสบความสำเร็จมากกับnethogs มันต้องทำงานเหมือนรูท แต่มีหลายวิธีที่คุณสามารถเรียงลำดับสถิติได้ (เช่น KB / s หรือแบนด์วิดท์ทั้งหมดที่ตรวจสอบนับตั้งแต่ nethogs เริ่มต้น)

นอกจากนี้หากคุณใช้อุปกรณ์ไร้สายคุณจะต้องส่งอุปกรณ์ให้

ติดตั้งด้วยคำสั่ง: sudo apt-get install nethogs

ตัวอย่าง: sudo nethogs wlan0


ในการตรวจสอบอย่างใกล้ชิดมันน่ารำคาญจริง ๆที่ถือว่าเครื่องนั้นมีความกว้าง 80 ตัวอักษรและตัดคำสั่งออก
Li Lo

3
ไม่นานมานี้ แต่คำตอบนี้ง่ายกว่ามาก
Malabarba

2
nethogsเป็นสิ่งที่ดี แต่ก็ดูเหมือนว่าจะใช้วิธีซีพียูมากขึ้นในคอมพิวเตอร์ของฉันกว่าiftop
ดาน

4
ได้รับคำเตือนถึงข้อผิดพลาดที่ทำให้บางรุ่นnethogใช้งานไม่ได้: askubuntu.com/questions/726601/…
Rmano

3
คุณไม่จำเป็นต้องผ่านอุปกรณ์หากคุณใช้ไร้สาย sudo nethogsทำงานได้ดี
โฆษณา 20000

55

ใช้iftopเพื่อค้นหาพอร์ต TCP บนเครื่องของคุณที่ได้รับปริมาณการใช้งานมากที่สุด จากนั้นใช้sudo netstat -tupเพื่อค้นหากระบวนการ "เป็นเจ้าของ" พอร์ตนั้น

นั่นคือกระบวนการที่คุณกำลังมองหา

PS: ควรทำงานกับ UDP ด้วย


ขอบคุณคำสั่งดูเหมือนจะทำงานได้ แต่ฉันได้รับผลลัพธ์ที่แปลก การตรวจสอบระบบอ้างว่ามีค่าทั้งหมดประมาณ 180KB / s ในขณะที่iftopอ้างว่ามีจำนวนทั้งหมดเพียง 1 กิโลไบต์ต่อวินาที
Malabarba

1
ฉันยอมรับคำตอบเพราะจะตอบคำถามเดิม แต่ฉันจะดีถ้าฉันสามารถหาสิ่งที่เกิดขึ้นที่นี่
Malabarba

iptop แสดงสถิติสำหรับอินเทอร์เฟซเดียว ฉันไม่แน่ใจว่าการตรวจสอบระบบดูที่หนึ่งอินเทอร์เฟซเดียวหรือทั้งหมด หากเป็นเช่นนั้นจะมีทราฟฟิกที่แสดงโดยการตรวจสอบระบบ แต่ไม่แสดงโดย iftop ซึ่งก็โอเคเพราะคุณต้องการดูที่อินเทอร์เฟซอินเทอร์เน็ตของคุณเท่านั้น (ไม่ใช่โล) ฉันเพิ่งทดสอบ iftop บนระบบของฉันและมันแสดงสิ่งที่ฉันคาดหวังไว้ ระวังแม้ว่า iftop จะแสดงค่าเฉลี่ยมากกว่า 2 วินาที, 10 วินาที, 40 วินาทีตามลำดับ ฉันใช้ iftop เหมือนกับ 'sudo iftop -i eth0 -nPB' คุณเรียกใช้มันได้อย่างไร
Li Lo

ฉันวิ่งตามsudo iftop -B -i eth0นั่นหมายความว่ามันแค่ดูปริมาณการใช้อินเทอร์เน็ตของฉันใช่มั้ย มันไม่ได้เกิดขึ้นกับฉันว่าการตรวจสอบระบบอาจตรวจสอบอินเทอร์เฟซอื่นเช่นกัน กระแทกแดกดันปัญหาหายไป 10 นาทีที่ผ่านมา (หลังจากหลายชั่วโมง) ดังนั้นฉันไม่สามารถตรวจสอบiftopอีกครั้งในขณะนี้ อินเทอร์เฟซแท้จริงหมายถึงอะไร
Malabarba

3
เนื่องจากมีตัวเลขจำนวนมากบนหน้าจอ iftop ฉันได้สร้างภาพหน้าจอที่ฉันเน้นหมายเลขที่คุณสนใจเปรียบเทียบกับจอภาพระบบ ภาพหน้าจอที่imgur.com/2iuiI "lo" ย่อมาจาก localhost เป็นส่วนต่อประสานซึ่งโปรแกรมท้องถิ่นสามารถสื่อสารกับอีกอันหนึ่งได้
Li Lo

14

คุณอาจต้องการntopตรวจสอบ - ซึ่งควรตรวจสอบกิจกรรมเครือข่ายในระดับกระบวนการ คุณสามารถค้นหาntopใน Software Center หรือด้วยsudo apt-get install ntop

สำหรับขั้นตอนการติดตั้งให้ทำตามหน้าhttp://packages.ntop.org/


2
ไม่สามารถใช้ได้กับ ubuntu 17.04 (zesty)
shadi

ดูpackages.ntop.org/apt-stableสำหรับ repos สำหรับ Ubuntu รุ่นที่ใหม่กว่า เช่นกันapt-get install ntopng
dw1


6

คำตอบที่ล่าช้า แต่ฉันมีปัญหาเดียวกัน กลายเป็น Ubuntuone พบว่าโดยใช้ tcpdump ฉันผ่านช่วงการเรียนรู้เดียวกันกับการระบุกระบวนการ

จากบันทึกย่อของฉัน :

ข้อมูลการเชื่อมต่อกล่อง Ubuntu

เริ่มต้นเดสก์ท็อป Ubuntu 10.04 ของฉันเมื่อเช้านี้เพื่อค้นหาว่าหลังจากนั้นไม่กี่นาทีการเชื่อมต่ออินเทอร์เน็ตก็จะคลาน ฉันเคยเห็นสิ่งนี้ในกล่อง Windows มาก่อนและ 99% ของเวลาเป็นสปายแวร์ ดังนั้นฉันต้องตรวจสอบ ... สไตล์บรรทัดคำสั่ง

tcpdump. แสดงให้เห็นว่า Ubuntuone บ้าไปแล้ว

ระบบ> ค่ากำหนด> Ubuntu One ปิดการซิงโครไนซ์ทั้งหมด นั่นมัน

ดังนั้นฉันคิดว่าฉันต้องการเห็นการเชื่อมต่อเครือข่ายทั้งหมดและสิ่งที่พวกเขาทำ ฉันสามารถ

netstat -cW (รายการการเชื่อมต่อเครือข่ายอย่างต่อเนื่องในรูปแบบกว้างเพื่อที่อยู่ต่างประเทศจะไม่ถูกตัดทอน)

lsof -i |grep -v 'localhost' (แสดงรายการไฟล์ที่เปิดที่ตรงกับที่อยู่อินเทอร์เน็ตของ grep เพื่อลบไฟล์ที่เปิดอยู่ใด ๆ ที่เกี่ยวข้องกับ localhost - ฉันคิดว่าที่นี่เป็นเพราะฉันไม่ต้องการเห็นบริการท้องถิ่นเพราะพวกเขาน่าจะไม่มีผลต่อการใช้เครือข่าย)

บางสิ่งที่จะไป:

  1. จำเป็นต้องเรียนรู้เกี่ยวกับบันทึกของ Ubuntu เพื่อแก้ไขปัญหา
  2. ต้องการที่จะเรียนรู้เพิ่มเติมเกี่ยวกับ tcpdump ดังนั้นฉันจะเริ่มต้นด้วยการกวดวิชานี้โดยแดเนียล Miessler

หมายเหตุบรรณาธิการ:คำตอบนี้อ้างถึงบทความ blogspot ของคนจรจัดซึ่งมีไว้สำหรับผู้ใช้ที่ได้รับเชิญเท่านั้น เนื่องจากคำตอบนี้มี upvotes ที่ประเมินค่าได้ดังนั้นจึงมีประโยชน์ ผมพบว่าสำเนาของบทความในWayback เครื่อง และรวมไว้ที่นี่

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