मैं कैसे बता सकता हूं कि कौन सा एप्लिकेशन नेटवर्क का उपयोग कर रहा है?


9

अपने मैक का उपयोग करते समय कभी-कभी, मैं अपने इंटरनेट कनेक्शन को धीमा कर देता हूं। एक्टिविटी मॉनिटर का उपयोग करके मैं देख सकता हूं कि ऐसा इसलिए है क्योंकि कोई डेटा पूरी दर से डाउनलोड कर रहा है जो मेरे कनेक्शन का समर्थन कर सकता है --- लेकिन मुझे नहीं पता कि यह कैसे बताया जाए कि इसके लिए क्या जिम्मेदार है। यह कई अलग-अलग चीजों के कारण हो सकता है (ड्रॉपबॉक्स सिंकिंग; कुछ ऐप एक स्वचालित अपडेट कर रहे हैं; हाल ही में यह एक ब्राउज़र टैब में एक वीडियो बफरिंग था जिसे मैं भूल गया था) इसलिए यह वास्तव में बताने का एक तरीका होगा। नेटवर्क उपयोग के लिए कौन सा ऐप जिम्मेदार है। क्या ओएस एक्स में ऐसा संभव है? आदर्श रूप से मैं एक मुफ्त समाधान की तलाश में हूं। (कमांड लाइन ठीक है।) मैं हिम तेंदुए पर हूँ अगर यह एक फर्क पड़ता है।

जवाबों:


6

आप इस dtraceएक-लाइनर की कोशिश कर सकते हैं:

sudo dtrace -n 'syscall::recvfrom:return { @[pid,execname] = sum(arg0); }'

इसे थोड़ी देर तक चलने दें, फिर कंट्रोल-सी को हिट करें। यह सॉकेट्स से पढ़े जाने वाले बाइट्स की संख्या का एक सारांश प्रिंट करेगा, प्रक्रियाओं के बीच वितरित किया जाएगा। अधिक विस्तृत दृश्य के लिए, sumद्वारा प्रतिस्थापित करें quantize। या सॉकेट रीड की एक गिनती देखने के लिए, इसके sumद्वारा प्रतिस्थापित करें count

डिस्क्लेमर: मैंने केवल लायन पर यह कोशिश की है, लेकिन AFAIK ने dtrace-क्षमता में कोई बड़ा बदलाव SL और शेर के बीच नहीं किया है।


1
बहुत धन्यवाद! सरल और प्रभावी और ठीक वैसा ही जैसा मुझे चाहिए था। स्नो लेपर्ड पर ठीक काम करता है।
नाथनियल

... हालाँकि वास्तव में, "राशि" का उपयोग करने पर संख्या थोड़ी अजीब लगती है - Google Chrome आमतौर पर एक नकारात्मक संख्या (!) प्राप्त करता है। लेकिन मात्रा का उपयोग करके वे समझदार दिखते हैं।
नाथनियल

नकारात्मक संख्या, हुह? शायद यह अतिप्रवाह का मामला है। या यदि आपको छोटे ऋणात्मक अंक मिलते हैं, तो याद रखें कि अगर कोई त्रुटि हुई है तो सिस्टम -1 रिटर्न देता है। यदि यह अतिप्रवाह है, तो मेरा अनुमान है कि जब आप 64 बिट कर्नेल चलाते हैं तो ऐसा नहीं होगा।
हेराल्ड हैन्च-ऑलसेन

वे मध्यम आकार की नकारात्मक संख्याएँ हैं। यहां एक सामान्य आउटपुट (Chrome में इस पृष्ठ को पुन: लोड करते समय लिया गया है): 250 Google Chrome -159; 39 कर्नेलएवेंटएजेन 1; 19 mDNSResponder 2240; लेकिन मैं सिर्फ उनका गलत अर्थ लगा सकता हूं - जब मैं 'क्वानिट्ज़' का उपयोग करता हूं तो "वैल्यू" कॉलम होता है जिसमें नकारात्मक मान हो सकते हैं, और "काउंट" कॉलम। ऐसा लगता है कि योग कमांड (मान) * (गणना) के योग की रिपोर्ट करता है। हो सकता है कि नकारात्मक मूल्यों का अर्थ है आने वाले पैकेट, या कुछ और?
नाथनियल

नहीं, यह सब आने वाले डेटा के बारे में है ... मेरा अनुमान है कि क्रोम सॉकेट में सेट किए गए थोड़े समय के साथ रिकवरफ्रॉम को कॉल करके लगातार मतदान करता है, जिस स्थिति में डेटा नहीं होने पर रिटर्न -1 का परिणाम होता है। Recvfrom के लिए मैनुअल पेज देखें।
हेराल्ड हैन्च-ऑलसेन

6

फायरवॉल

आप लिटिल स्निच या हैंड्सफ का इस्तेमाल कर सकते हैं । वे महान फायरवॉल हैं और दोनों में "नेटवर्क मॉनिटर" सुविधा है, जो काम करेगी:

लिटिल स्निक में एक नेटवर्क मॉनिटर शामिल है, जो आने वाले और बाहर जाने वाले नेटवर्क ट्रैफ़िक की विस्तृत जानकारी दिखाता है।
मेनू बार में एक स्थिति आइकन वर्तमान नेटवर्क गतिविधि का सारांश प्रदान करता है, और नई ट्रैफ़िक घटनाओं के मामले में अधिक व्यापक जानकारी के साथ मॉनिटर विंडो स्वचालित रूप से पॉप अप होती है।

हैंड्स ऑफ आपके नेटवर्क और डिस्क पर एप्लिकेशन की पहुंच की निगरानी और नियंत्रण के लिए एक एप्लिकेशन है। सामान्य रूप से ध्यान देने योग्य गतिविधियों की निगरानी करने में सक्षम होने के कारण आपको अपनी निजी जानकारी के हस्तांतरण के बारे में सूचित निर्णय लेने में सक्षम बनाता है, इसलिए गोपनीय जानकारी रिसाव से बचा जाता है।

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

नेटवर्क मॉनिटर: लिटिल स्निच (बाएं), हैंड्सऑफ़ (दाएं)

नेटटॉप

एक निशुल्क और बिल्ट-इन क्ली समाधान (दुर्भाग्य से यह स्नो लेपर्ड में शामिल नहीं है) नेटटॉप होगा । nettop समूह प्रोग्राम और पोर्ट के द्वारा यातायात करता है और विभिन्न नेटवर्क आँकड़ों को मापता है।

अन्य

कुछ अन्य कार्यक्रम हैं, जो ट्रैफ़िक ( iftop , wirehark , tcpdump ) को कैप्चर करते हैं और मापते हैं , लेकिन वे उत्पन्न पीआईडी ​​को नहीं जानते हैं। कनेक्शन बनाने के लिए आपको नेटस्टैट का उपयोग करना चाहिए ।


धन्यवाद! मैंने यह इंगित करने के लिए प्रश्न संपादित किया है कि मैं आदर्श रूप से एक नि: शुल्क समाधान की तलाश कर रहा हूं (€ 30 बहुत अधिक है जो मैं कभी-कभी उपयोग करता हूं), लेकिन अगर ऐसा करने का कोई स्वतंत्र तरीका नहीं है तो मैं ' इस उत्तर को स्वीकार करेंगे।
नथानिएल

माफ करना मेरा बुरा। मैं एक मुफ्त विकल्प खोजने की कोशिश करूंगा और अपने जवाब को अपडेट करूंगा।
मपसोव

हा! nettopमेरे लिए नया था। हाथ लगता है।
हेराल्ड हैन्च-ऑलसेन

अगर यह संभव होता तो मैं भी इस उत्तर को स्वीकार करता। अगर मैं शेर को अपग्रेड करता हूं तो ऐसा लगता है कि नेटटॉप वास्तव में बहुत आसान होगा।
नथानियल

4
sudo fs_usage -f network

आपको सभी अनुप्रयोगों (और प्रक्रियाओं) द्वारा सभी नेटवर्क एक्सेस प्रदान करेगा। आमतौर पर बहुत सारे ट्रैफ़िक बनाने की प्रक्रिया वह होती है जो आउटपुट में सबसे अधिक बार दिखाई देती है।


1
धन्यवाद, यह वास्तव में उपयोगी है। मैं इस प्रश्न के उपयोगी उत्तर की संख्या से प्रभावित हूँ।
नथानियल

1

"DTrace बुक" में एक स्क्रिप्ट, socialonnect.d है , जो ऐसा करता है।

"मैक ओएस एक्स" संस्करण को कॉपी करें, इसे एक टेक्स्ट फ़ाइल में पेस्ट करें, फिर टर्मिनल से इसे चलाएं sudo dtrace -s soconnect.d


लेकिन यह आपको नेटवर्क ट्रैफ़िक की मात्रा की धारणा नहीं देता है जो एक प्रक्रिया प्राप्त करती है? यह केवल कनेक्शन को ट्रैक करता है, जहां तक ​​मैं बता सकता हूं।
हराल्ड हैन्च-ऑलसेन

1

एक्टिविटी मॉनिटर में 10.9 के बाद से बाइट्स प्राप्त करने और भेजने के लिए कॉलम हैं:

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.