क्या यह पता लगाने का एक तरीका है कि लिनक्स में अधिकांश बैंडविड्थ का उपयोग करने वाला कौन सा एप्लिकेशन है? [बन्द है]


56

मैं एक उपयोगिता की तलाश में हूं जो मुझे दिखा सके कि प्रत्येक प्रक्रिया कितनी बैंडविड्थ का उपयोग कर रही है। यह सिर्फ डेटा को प्रिंट करना चाहिए और बाहर निकलना चाहिए क्योंकि मैं उस सूची को शंकु में खिलाना चाहता हूं।

जवाबों:


71

आप नेटहॉग्स आज़मा सकते हैं ।

NetHogs एक छोटा 'नेट टॉप' टूल है। प्रति प्रोटोकॉल या सबनेट की तरह ट्रैफ़िक को तोड़ने के बजाय, जैसे अधिकांश उपकरण करते हैं, यह प्रक्रिया द्वारा बैंडविड्थ को समूहित करता है । NetHogs लोड होने के लिए एक विशेष कर्नेल मॉड्यूल पर निर्भर नहीं करता है। यदि अचानक नेटवर्क ट्रैफ़िक आता है, तो आप NetHogs को फायर कर सकते हैं और तुरंत देख सकते हैं कि PID किस कारण से ऐसा कर रहा है। यह उन कार्यक्रमों को प्रेरित करना आसान बनाता है जो जंगली हो गए हैं और अचानक आपके बैंडविड्थ को ले जा रहे हैं।

NetHogs_Screenshot


लगभग मुझे क्या चाहिए, लेकिन यह सिर्फ काम नहीं करता है :(
vava

खैर, क्या काम नहीं करता है? कोई त्रुटि? क्या यह बिल्कुल शुरू नहीं होता है? कंसोल आउटपुट?
मिल्डे

यह ipv6
zb '29

आपको इसे जड़ के रूप में चलाना होगा। प्रमुख मोड की सिफारिश की जाती है। sudo nethogs -p eth2। यदि आपको डिफ़ॉल्ट रूप से eth0 नहीं है तो आपको अपना ईथरनेट निर्दिष्ट करना होगा।
आनंदू एम दास

@vava रेपो में एक के साथ एक समस्या है, यह 0.8.1 में तय हो गई है लेकिन आपको स्रोत से निर्माण करना होगा (जो बेहद आसान है)। इस पोस्ट को देखें: askubuntu.com/questions/726601/…
मैथ्यू

6

यहाँ कुछ सूचीबद्ध है

मेरे पसंदीदा हालांकि iftop और tcpdump रहते हैंWireshark भी एक बहुत अच्छा विकल्प है।


मेरे पास वॉयरशार्क के साथ नैतिक मुद्दे हैं, अगर नेटवर्क पर अकेले नहीं हैं ... जब तक कि आपके पास केवल स्थानीयहोस्ट की जांच करने का एक तरीका नहीं है, जिस मामले में मुझे दिलचस्पी है।
ग्नूपी

5
यदि आप उचित मोड को सक्षम नहीं करते हैं तो यह केवल आपके मेजबान को निर्देशित ट्रैफ़िक पर कब्जा करना चाहिए।
अमोक

हुह, उन उपयोगिताओं में से कोई भी मुझे नहीं बता सकता है कि कौन सी प्रक्रिया सबसे अधिक बैंडविड्थ का उपयोग कर रही है और यही मैं उसके बाद कर रहा हूं।
vava

5

कोशिश करें atop ... इसका अधिक से अधिक लाभ उठाने के लिए आपको कुछ अतिरिक्त कर्नेल पैच (I / O अकाउंटिंग पैच) सक्षम करने पड़ सकते हैं।

यदि atopकोई विकल्प नहीं है, तो netstat -anp --inetटीसीपी / यूडीपी पोर्ट किन प्रक्रियाओं (या संभवतः lsofउस के लिए उपयोग करते हैं) के उपयोग की सूची प्रदान करने के लिए (रूट के रूप में) उपयोग करें । वहाँ से बस एक प्रक्रिया है कि एक खुला सॉकेट मिला है पर या तो इसे का उपयोग कर ltrace -Sया इसे संलग्न करने के लिए या straceपढ़ता है, लिखता है, भेजता है और प्राप्त करता है, या tcpdumpएक फिल्टर के साथ अपने स्थानीय आईपी पते (तों) और टीसीपी / यूडीपी बंदरगाहों को निर्दिष्ट करने के लिए देखने के लिए संलग्न वे सूचीबद्ध थे।

atopनिश्चित रूप से इनमें से सबसे सुविधाजनक है ... यदि आपके पास यह है और आवश्यक कर्नेल समर्थन स्थापित है। अतीत में मैंने ग्राहकों और नियोक्ताओं को I / O प्रोफाइलिंग का उपयोग करने के समर्थन के एकमात्र उद्देश्य के लिए विशेष सिस्टम (उनकी उत्पादन छवियों से अलग) स्थापित किया है atop। हालांकि ये अन्य तकनीक आपको वहां मिल जाएगी।

मुझे यकीन है कि हम SystemTap का उपयोग करके भी कुछ कर सकते हैं ... लेकिन मुझे यह करने के लिए किसी भी आसान पूर्व-पकाया व्यंजनों का पता नहीं है। SystemTap एक प्रोग्रामिंग विश्लेषण उपकरण है।


अगर आप सिर्फ यह जानना चाहते हैं कि कौन सी प्रक्रिया नेटवर्क को हॉगिंग कर रही है, न कि वास्तविक बैंडविड्थ का उपयोग किया गया है, तो आप बस और कॉलमों की netstat -anp --inetजांच कर सकते हैं और उपयोग कर सकते हैंRecv-QSend-Q
golimar
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.