มีคำสั่งเหมือนด้านบนที่แสดงแบนด์วิดท์เครือข่ายและการเข้าถึงไฟล์ของกระบวนการทำงาน


31

ตัวอย่างเช่นเราต้องการดู:

PROCESS       IF       TX       RX       FILE(regular) R/W
prog1         eth0     200kB/s  12kB/s   --            --
              wlan0    12kB/s   100kB/s  --            --
              --       --       --       file1         R
              --       --       --       file2         R
              --       --       --       file3         W
prog2         eth0     0kB/s    200kB/s  --            --
              --       --       --       file4         W
              --       --       --       file5         W

เป็นไปได้ไหม nethogs แสดงเฉพาะ TX / RX ในขณะที่ lsof แสดงเฉพาะการเข้าถึงไฟล์

ฉันกำลังทำกระบวนการแบบสองขั้นตอนเช่นนี้:

sudo nethogs
sudo lsof -a -d 1-999 -c hogging_program /

มีวิธีที่ดีกว่า?

คำตอบ:


5

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

การค้นหาสิ่งที่แสดงทั้งเครือข่ายและสถิติไฟล์ - ซึ่งจะให้โดยสองส่วนต่าง ๆ ของระบบปฏิบัติการ - ดูเหมือนจะขัดแย้งกับผู้เช่าบางรายใน 'The UNIX Philosophy:'

  • ทำให้แต่ละโปรแกรมทำได้ดี หากต้องการทำงานใหม่ให้สร้างใหม่แทนที่จะทำให้โปรแกรมเก่าซับซ้อนขึ้นด้วยการเพิ่มคุณสมบัติใหม่
  • คาดว่าเอาต์พุตของทุกโปรแกรมจะกลายเป็นอินพุตไปยังอีกโปรแกรมซึ่งยังไม่ทราบ อย่าส่งออกถ่วงด้วยข้อมูลที่ไม่เกี่ยวข้อง

สิ่งนี้ชัดเจนโดยเฉพาะในโปรแกรมที่แสดงข้อความเช่น lsof โดยปกติคุณจะไม่เห็นโปรแกรมคอนโซล * NIX ที่ให้อินเทอร์เฟซผู้ใช้มากเท่ากับข้อมูลที่จะถูกไพพ์ไปยังโปรแกรมอื่นหรืออาจเป็นสคริปต์ที่ใช้คำสั่งเชลล์เช่นตัดเพื่อสร้างเอาต์พุตที่ปรับแต่งเป็นพิเศษของตนเอง

ดั๊ก McIlroy สรุปงบปีก่อนหน้าของเขาในภายหลัง:

เขียนโปรแกรมที่ทำสิ่งหนึ่งและทำได้ดี เขียนโปรแกรมเพื่อทำงานร่วมกัน เขียนโปรแกรมเพื่อจัดการสตรีมข้อความเนื่องจากเป็นอินเตอร์เฟสสากล

แม้ว่ามันอาจไม่ช่วยให้คุณได้รับผลลัพธ์ที่มีการจัดรูปแบบที่คุณกำลังมองหาศิลปะของการเขียนโปรแกรม UNIXนั้นเป็นการอ่านที่ดีและที่ฉันพบแหล่งข้อมูลสำหรับคำพูดเหล่านั้น


7
สิ่งนี้ไม่ได้ให้คำตอบสำหรับคำถาม
แมว

เป็นไปได้ไหม - ฉันเชื่อว่าสิ่งที่คุณพยายามทำให้สำเร็จน่าจะดีที่สุด (และเท่าที่ฉันรู้เท่านั้น) เป็นไปได้ที่จะรวมหลายคำสั่งเช่นเดียวกับที่คุณทำอยู่ในปัจจุบัน -- มีวิธีที่ดีกว่า? ฉันเชื่อว่าสิ่งที่คุณกำลังพยายามนั้นน่าจะดีที่สุดและเป็นไปได้ที่จะเชื่อได้หลายคำสั่ง ... ด้วยการเขียนสคริปต์เชลล์ที่ฉลาดและข้อมูลไพพ์คุณสามารถได้ผลลัพธ์ [จัดรูปแบบวิธี] ที่คุณกำลังมองหา - ฉันพลาดคำถามอะไร อาจตอบได้ดีกว่าด้วยการพูดถึงเชลล์สคริปต์ piped แต่ความคิดเห็นที่เป็นประโยชน์ของคุณไม่ได้กล่าวถึงว่า: p เป็นคำตอบที่เหมาะสมสำหรับสคริปต์ทำงานหรือไม่
overprescribed

ฉันเชื่อว่าสิ่งที่คุณพยายามทำให้สำเร็จอาจอธิบายได้ดีที่สุดว่า "ตอบคำถาม" ไม่บรรยายใครบางคนเกี่ยวกับปรัชญา
การ์ดเนอร์ Bickford

ไม่ใส่คำตอบที่ชัดเจนมากขึ้นที่ด้านบนโดยไม่มีบทเรียนปรัชญา แต่ไม่มีใครรู้ว่าทำไมคำตอบคือไม่และอาจเดินกลับเข้าไปในอินเทอร์เน็ตไม่เข้าใจคำพูดที่ชาญฉลาดของ Linux Torvalds; "ปรัชญา Linux คือ 'หัวเราะในการเผชิญกับอันตราย!' โอ๊ะผิดหนึ่งทำได้ด้วยตัวเอง แค่นั้นแหละ."
overprescribed

17

ลองiftopสำหรับเครือข่ายและ pidstat จากsysstat

ทั้งสองอย่างนั้นอาจจะติดตั้งได้ง่าย (apt-get, etc) สำหรับการกระจายตัวที่คุณเลือก


6

atopไปทางที่จะให้สิ่งที่คุณต้องการถึงแม้ว่ามันจะไม่เจาะจงเท่ากับการทำลาย I / O โดย filehandle ในการรับสถิติระบบเครือข่ายแบบสมบูรณ์คุณต้องใช้เคอร์เนลแพตช์


2

iptrafนั้นมีประโยชน์อย่างมากและการค้นหา bandwidth hogs


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