100% (सीपीयू या डिस्क या नेट) का उपयोग क्यों नहीं किया जाता है?


21

100% या तो cpu, डिस्क, या नेटवर्क का उपयोग क्यों apt-get नहीं करता है - या इसके करीब भी नहीं है? यहां तक ​​कि एक धीमी प्रणाली (रास्पबेरी पाई 2+) पर मुझे सबसे अधिक 30% सीपीयू लोड मिल रहा है। मैं बस सोच रहा हूं कि या तो यह कृत्रिम रूप से गला घोंटा जा रहा है, या इसे काम करते समय कुछ अधिकतम करना चाहिए ... या यह अपनी चीज को तेजी से करने में सक्षम होना चाहिए।

संपादित करें: मैं बस अपने पैनल में सीपीयू / डिस्क / नेट मॉनिटर और उबंटू मेट के सिस्टम मॉनिटर ऐप के माध्यम से लगभग माप रहा हूं।

कृपया समझाएं कि मैं गलत क्यों हूं। :-)

अद्यतन: मैं समझता हूं कि apt-getइसके अपडेट प्राप्त करने की आवश्यकता है (और अपस्ट्रीम / प्रदाता बैंडविड्थ द्वारा सीमित किया जा सकता है)। लेकिन एक बार यह "अनपैकिंग" और इतने पर, सीपीयू का उपयोग कम से कम ऊपर जाना चाहिए (यदि अधिकतम नहीं है)। मेरे काफी सभ्य होम वर्कस्टेशन पर, जो अपने मुख्य ड्राइव के लिए एक एसएसडी का उपयोग करता है, और / tmp के लिए एक रैमडिस्क, यह मामला नहीं है।

या शायद मुझे करीब से देखने की जरूरत है।


आप डिस्क और नेटवर्क लोड कैसे माप रहे हैं?
जिग्गलीनागा

1
हालांकि, डिस्क IO नेटवर्क IO की तरह है। यह अभी भी सीपीयू का उपयोग करने से रोकते हुए, ऐप को ब्लॉक कर देगा। काश, apt-getयह अनुकूलन करने में विशेष रूप से अच्छा नहीं है। मुझे लगता है कि यह डाउनलोड के रूप में स्थापित हो सकता है ताकि जब तक आपका डाउनलोड समाप्त न हो जाए तब तक आपका अधिकांश पेलोड पहले से ही स्थापित हो सकता है, लेकिन, दुर्भाग्य से, यह नहीं है। किसी भी स्थिति में, स्टैंडअलोन ज्यादातर डिस्क को डेटा निकालने के लिए स्थापित करता है। वे ऑपरेशन स्वाभाविक रूप से आईओ बाउंड हैं, और पढ़ने या लिखने के लिए डिस्क ड्राइव पर इंतजार करने के लिए बस कुछ और नहीं है।
PSkocik

आपको 30% CPU लोड नंबर कैसे मिला ?
अल

1
@ पीएसकोकिक "मुझे लगता है कि यह डाउनलोड के रूप में स्थापित हो सकता है" उपयुक्त-बस डाउनलोड, डीपीकेजी स्थापित करता है। और dpkg apt-get की तुलना में अधिक स्मार्ट है, इस क्रम में कि संकुल का एक गुच्छा स्थापित किया जाना चाहिए, जो समान नहीं हो सकता है कि apt-get उन्हें डाउनलोड करता है।
ब्रिअम

ध्यान दें कि एक आवेदन जो कि आधे टिक के लिए 100% सीपीयू बाध्य है, और फिर अन्य आधे के लिए 100% आईओ-बाउंड न तो सीपीयू-बाउंड और न ही आईओ-बाउंड दिखाई देगा।
MSalters

जवाबों:


28

यदि एप्लिकेशन सीपीयू-बाउंड है तो ऐप केवल सीपीयू को अधिकतम करेंगे । एक ऐप सीपीयू-बाउंड है अगर यह जल्दी से अपने सभी डेटा प्राप्त कर सकता है और यह जिस पर इंतजार करता है वह डेटा को संसाधित करने के लिए प्रोसेसर है।

apt-getदूसरी ओर, आईओ-बाउंड है । इसका मतलब है कि यह अपने डेटा को जल्दी से संसाधित कर सकता है, लेकिन डेटा लोड करना (डिस्क या नेटवर्क से) समय लेता है, जिसके दौरान प्रोसेसर अन्य सामान कर सकता है या बेकार बैठ सकता है अगर किसी अन्य प्रक्रिया की आवश्यकता नहीं है।

आमतौर पर, सभी IO अनुरोध (डिस्क, नेटवर्क) धीमा होते हैं, और जब भी कोई एप्लिकेशन थ्रेड एक बनाता है, तो कर्नेल इसे प्रोसेसर से हटा देगा जब तक कि डेटा कर्नेल में लोड नहीं हो जाता (= इन IO अनुरोधों को अवरुद्ध अनुरोध कहा जाता है )।


6
aptआदेशों के साथ , यह इस तथ्य से बढ़ जाता है कि कई फाइलें सिंक मोड में खुली हैं, या डिस्क पर डेटा की गारंटी देने के लिए डिस्क पर लगातार स्पष्ट फ्लश के साथ एक सुसंगत स्थिति में रहने की अनुरोध किया जाता है क्योंकि सिस्टम क्रैश अन्यथा गंभीर परिणाम हो सकता है। के aptसाथ कमांड चलानाeatmydata अक्सर नाटकीय रूप से कम विश्वसनीयता की कीमत पर प्रदर्शन में सुधार कर सकते हैं (यह उल्लेख नहीं करने के लिए कि पैकेज इंस्टॉलेशन के हिस्से के रूप में शुरू की गई सेवाएं ईटमाईडेटा सेटिंग्स को विरासत में मिलेंगी)
स्टीफन चेज़लस

उस अंतिम बिंदु पर योग्य :)। क्या 2010 के बाद से किसी के पास खाने के लिए नंबर हैं bugs.debian.org/cgi-bin/bugreport.cgi?bug=578635 ? मुझे नहीं पता कि क्या "नाटकीय रूप से" अभी भी सही शब्द है।
sourcejedi

आह, शायद यह (कम से कम कुछ क्लाउड प्रोवाइडर्स पर) बग्सलांचपड.नेट
+

1
@ Sourcejedi एक रास्पबेरी Pi2 पर अपेक्षाकृत उच्च अंत एसडी कार्ड (लेकिन अभी भी एक एसडी कार्ड, एक उच्च अंत SSD नहीं) के साथ, मैं "नाटकीय रूप से" एक ख़ामोश सा महसूस करता हूं। फ्लैश मीडिया पर dpkg का प्रदर्शन वास्तव में बेकार है।
गिल्स एसओ- बुराई को रोकें '25

1
यदि यह डिस्क-आईओ-बाउंड है तो यह 100% डिस्क बैंडविड्थ का उपयोग क्यों नहीं कर रहा है?
user253751

15

यहां तक ​​कि एक धीमी प्रणाली (रास्पबेरी पाई 2+) पर मुझे सबसे अधिक 30% सीपीयू लोड मिल रहा है।

रास्पबेरी पाई 2+ में 4 कोर हैं। कुछ निगरानी उपकरणों के लिए, सभी कोर का 100% उपयोग 100% पर किया जाता है। यदि क्वाड कोड प्रोसेसर में केवल एक कोर का उपयोग किया जाता है, तो सीपीयू लोड 25% होता है। आपके द्वारा उल्लिखित 30% सीपीयू लोड लगभग एक कोर 100% पर उपयोग किया जाता है, जबकि कुछ प्रक्रियाएं अन्य कोर पर चल रही हैं:

(100% on one core out of 4 = 100 / 4 = 25%) + some processes ≃ 30%

चूंकि apt-getबहु थ्रेडेड नहीं है, यह कभी भी एक से अधिक प्रोसेसर का उपयोग नहीं करेगा, जो सभी सीपीयू संसाधनों का 25% है।


यहां उबंटू चलाने वाली मेरी 8 कोर ( हाइपर-थ्रेडिंग के साथ 4 कोर ) पर एक उदाहरण है , मैंने एक धागे को cat /dev/zero > /dev/nullएक अनंत प्रक्रिया बनाने के लिए कमांड के साथ लॉन्च किया जो पूरी तरह से एक कोर का उपयोग करता है।

अब यदि हम ग्राफ पर एक नज़र डालें htop, तो हम देख सकते हैं कि औसत भार (Avg बार) है 12.7%, जो 100% पर उपयोग किए जाने वाले एक कोर के अनुरूप है , जो सभी सीपीयू संसाधनों का 1/8 भी है:

(100% = 100 / 8 = 12.5%) + some background processes ≃ 12.7%.

htop

यह भी ध्यान दिया जा सकता है कि कमांड का मान है 100%CPU% कॉलम में , ऐसा इसलिए है क्योंकि यह एक कोर के सापेक्ष है और सभी कोर के लिए नहीं है।


+1, (100 / nCores) के कई के करीब एक उपयोग% को हमेशा आगे की जांच को ट्रिगर करना चाहिए। यह जाँच की जा सकती है - और वास्तव में बंद है - एक निगरानी का उपयोग करके प्रति कोर का उपयोग करने में सक्षम है, जहां 0 <=% <= 100 * nCores
अंडरस्कोर_ड

/dev/zero > /dev/nullएक बेहतर उदाहरण नहीं है, क्योंकि यूरेनियम से एंट्रॉपी पूल खत्म हो जाएगा?
फिलीप हगलुंड

@FilipHaglund cat /dev/zero > /dev/nullएक ही परिणाम देता है, मुझे पता नहीं था कि डिवाइस, धन्यवाद। यूरोजोन एन्ट्रापी पूल को समाप्त कर देगा मैं एंट्रोपी पूल को नहीं जानता, यह एक समस्या कैसे हो सकती है?
अल

1
जब प्रोग्राम क्रिप्टो का उपयोग करते हैं, तो उन्हें सुरक्षित एन्क्रिप्शन कुंजी उत्पन्न करने के लिए वास्तव में यादृच्छिक डेटा की आवश्यकता होती है। कंप्यूटर अन्य चीजों के बीच माउस की चाल देखकर एन्ट्रापी उत्पन्न करता है। हार्डवेयर रैंडम नंबर जेनरेटर हैं, लेकिन अधिकांश कंप्यूटर उनके पास नहीं हैं। यदि एन्ट्रॉपी का उपयोग किया जाता है, तो सुरक्षित एन्ट्रापी की आवश्यकता वाले कोड को अधिक उत्पन्न होने की प्रतीक्षा करनी होगी। यदि उपलब्ध हो तो उरुग्वे वास्तव में यादृच्छिक बिट्स का उपयोग करेगा, या अन्यथा कम सुरक्षित यादृच्छिक बिट्स लौटाएगा।
फिलिप हगलुंड

जब प्रोग्राम क्रिप्टो का उपयोग करते हैं, भले ही मुझे लगता है कि कोई भी एक यादृच्छिक कुंजी उत्पन्न करते समय सीपीयू बेंचमार्क नहीं करेगा, मैंने एहतियात के रूप में अपना जवाब अपडेट किया है।
अल

2

मुझे लगता है कि आप वास्तव में IO% को माप नहीं रहे हैं। मैंने लिनक्स IO% विजेट नहीं देखा है। (मैं विंडोज 10 टास्क मैनेजर :) से बहुत ईर्ष्या करता हूं। iotopकमांड का उपयोग करके जांचें और आप 100% IO देखेंगे।

top100% user+ system+ के पार दिखाना चाहिए iowait, 100% मानों को आपकी कोर गिनती से विभाजित करने के लिए, जैसा कि AL द्वारा कहा गया topहै कि मैं 100% सहायक नहीं हूं , लेकिन यह सीखने के लिए वास्तव में उपयोगी उपकरण हो सकता है।

थ्रूपुट अधिकतम से कम होगा, क्योंकि आप बहुत सारी छोटी फ़ाइलों को अनपैक कर रहे हैं, उर्फ ​​"रैंडम आईओ"। कुछ डिस्क सिंक / कैश फ्लश भी हैं, हालांकि लिनक्स पर 2010 के बाद से प्रत्येक पैकेज के लिए उनमें से कुछ ही हैं। ( प्रति फ़ाइल एक हुआ करता था )।


उपयोग करें iotop --only, --onlyविकल्प केवल प्रक्रियाएं या थ्रेड्स वास्तव में I / O दिखा रहा है
अल

4
iostat, dstat, atop ... प्रति डिस्क डिस्क उपयोग बिना विशेषाधिकारों की आवश्यकता के दिखाएगा। यह प्रति-कार्य उपयोग के लिए है जिसे आपको विशेषाधिकारों की आवश्यकता है
स्टीफन चेज़ेलस

@ स्टीफनचेज़लस बिल्कुल सही। मैं (निंजा एडिट) बनाने की कोशिश कर रहा था कि ओपी में GUI टूल के एक जोड़े का उल्लेख है। और विशेष रूप से GUI उपकरण, जो मैंने देखा है, जैसे Gnome System Monitor, थ्रूपुट दिखाता है, लेकिन कोई IO% नहीं।
sourcejedi

2

दरअसल, CPU ऑप्स की तुलना में IO / Network रिक्वेस्ट वास्तव में धीमी होती हैं। इसका मतलब है कि जब आपका नेटवर्क कार्ड डेटा ला रहा है, या आपकी डिस्क इस डेटा को लिख रही है, तो आपका सीपीयू पूरी तरह से कुछ भी नहीं करता है (वैसे भी इस प्रक्रिया के लिए)।

यदि आपकी हार्ड ड्राइव आपके नेटवर्क कनेक्शन (जो शायद सच है) की तुलना में तेज है, तो यह प्राप्त किए गए से अधिक नहीं लिखेगा।

अंत में, नेटवर्क प्रतिशत अधिकतम संभव नेटवर्क कार्ड के उपयोग से मेल खाता है , कनेक्शन से नहीं। तो आपके पास 1Gb / s नेटवर्क एडॉप्टर हो सकता है, आप वास्तव में इस बैंडविड्थ तक पहुंचने वाले इंटरनेट कनेक्शन की संभावना नहीं रखते हैं।

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