लोड इस तथ्य के बावजूद अधिक है कि न तो सीपीयू या डिस्क का उपयोग किया जाता है


20

मुझे निम्न आउटपुट मिल रहे हैं top:

Cpu(s): 43.8%us, 32.5%sy,  4.8%ni,  2.0%id, 15.6%wa,  0.2%hi,  1.2%si,  0.0%st
Mem:  16331504k total, 15759412k used,   572092k free,  4575980k buffers
Swap:  4194296k total,   260644k used,  3933652k free,  1588044k cached

iostat -xk 6निम्न से आउटपुट दिखाता है:

Device: rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda       0.00   360.20   86.20  153.40  1133.60  2054.40    26.61     1.51    6.27   0.77  18.38
sdb       0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sdd      22.60   198.80   17.40   31.60   265.60   921.60    48.46     0.18    3.70   1.67   8.20
sdc      16.80   218.20   22.20   23.40   261.60   966.40    53.86     0.21    4.56   1.49   6.78

ऊपर के आधार पर ऐसा लगता है कि कुछ अतिभारित होना चाहिए। पर क्या?

प्रशन

  1. अगर इसकी हार्डडिस्क या सीपीयू नहीं है तो क्या?
  2. ऐसा लगता है जैसे CPU के 15.6% समय प्रतीक्षा में व्यतीत हो रहे हैं। वास्तव में इसका क्या इंतज़ार किया जा सकता है?

2
सीपीयू विनिर्देशों और लोड कितना है?
sepehr

लोड 100 से अधिक है
user4951

लोड सीपीयू और सीपीयू कोर की संख्या के सापेक्ष है, आपके सिस्टम के सीपीयू विनिर्देश क्या हैं?
sepehr

जवाबों:


49

स्पष्टीकरण बिंदु के रूप में, लोड सीधे सीपीयू से बंधा नहीं है। यह लोड के बारे में सबसे आम गलत धारणाओं में से एक है। तथ्य यह है कि आप डिस्क का उल्लेख करते हैं यह स्वीकार करते हैं कि आप इसके बारे में जानते हैं, लेकिन मैं इसका उल्लेख करना चाहता था क्योंकि मैं ऐसी टिप्पणियां देखता हूं जो कुछ विश्वास को इंगित करती हैं।

लोड को सिस्टम संसाधनों पर प्रतीक्षा कर रही प्रक्रियाओं की संख्या के रूप में परिभाषित किया गया है। यह आमतौर पर सीपीयू, डिस्क या नेटवर्क है, लेकिन वास्तव में कुछ भी हार्डवेयर हो सकता है।
एक "प्रक्रिया" जरूरी नहीं कि एक पूर्ण प्रक्रिया हो। एक थ्रेड को "हल्की प्रक्रिया" के रूप में परिभाषित किया गया है, और प्रत्येक थ्रेड जो प्रतीक्षा कर रहा है वह लोड काउंट को बढ़ाता है।


यह पता लगाने के लिए कि कौन सी प्रक्रिया एक समस्या है:

भागो top -H( -Hधागे दिखाने में सक्षम बनाता है)

कीबोर्ड शॉर्टकट संस्करण द्वारा भिन्न होते हैं।

नए शीर्ष के साथ (3.3 और उसके बाद):

fफ़ील्ड विकल्प लाने के लिए दबाएँ । प्रेस और प्रेस
करने के लिए तीर कुंजियों का उपयोग करें । मुख्य पृष्ठ पर वापस जाने के लिए दबाएँ । छँटाई को उलटने के लिए + दबाएँ ।S = Process Statuss
q
ShiftR

पुराने शीर्ष के साथ (3.3 से पहले):

सॉर्ट विकल्प लाने के लिए Shift+ दबाएँ o
फिर wप्रक्रिया की स्थिति के अनुसार क्रमबद्ध करें।
फिर Enterमुख्य पृष्ठ पर वापस जाने के लिए।
फिर Shift+ Rछँटाई को उलटने के लिए।

फिर Sकॉलम में, उन प्रक्रियाओं की तलाश करें जिनके पास Dया R(अब उन्हें शीर्ष पर होना चाहिए)। ये सिस्टम लोड में योगदान करने वाली प्रक्रियाएं होंगी।

यदि प्रक्रिया एक दिखाती है D, तो इसका मतलब है कि "निर्बाध नींद"। आमतौर पर यह तब होता है जब प्रक्रिया I / O (डिस्क, नेटवर्क, आदि) पर प्रतीक्षा कर रही होती है।
यदि प्रक्रिया एक दिखाती है R, तो इसका मतलब है कि यह सामान्य गणना कर रहा है।


उन प्रक्रियाओं के बारे में अधिक जानने के लिए:

नए शीर्ष के साथ (3.3 और उसके बाद):

fफ़ील्ड विकल्प लाने के लिए दबाएँ ।
तीर कुंजियों का उपयोग करने के लिए जाने के लिए WCHAN = Sleeping in Functionऔर dइसे सक्षम करने के लिए दबाएँ ।
फिर qमुख्य पृष्ठ पर वापस आने के लिए।

पुराने शीर्ष के साथ (3.3 से पहले):

फ़ील्ड को सक्षम करने के लिए fफिर दबाएँ ।yWCHAN

यदि आपके सिस्टम में आवश्यक कर्नेल विकल्प हैं, और wchan फ़ाइल आपके सिस्टम पर मौजूद है (मैं भूल गया कि यह कहाँ है और इसे क्या कहा जाता है) , WCHANफ़ील्ड को आपको यह दिखाना चाहिए कि वर्तमान में क्या कर्नेल फ़ंक्शन चल रहा है (यदि फ़ील्ड सिर्फ a दिखाता है -या ?सब कुछ पर, आपके पास समर्थन नहीं है)।
थोड़ा सा गूगल यहाँ और आप अपने रास्ते पर होना चाहिए।

यदि आपके पास wchan समर्थन नहीं है, तो आप हमेशा straceयह पता लगाने के लिए प्रक्रियाओं पर कोशिश कर सकते हैं कि वे क्या कर रहे हैं, लेकिन यह मुश्किल तरीका है।


मैं आमतौर पर छांटने के लिए बाएं तीर को दबाता हूं।
नेमो

2

कम जीवनकाल की प्रक्रियाएं जैसे कि नौकरियों को संकलित करना या लूप में विफल होने वाली प्रक्रियाएं अक्सर मॉनिटरिंग टूल जैसे कि topiostat और इत्यादि में दिखाई नहीं देती हैं ।

ऐसे मामलों में लिनक्स ऑडिट फ्रेमवर्क मदद करेगा

अपराधी, उदाहरण के लिए एक विफलता पाश

while :; do gcc /dev/zero ; done >/dev/null 2>&1

लेखा परीक्षा / लेखा परीक्षा का उपयोग करने के लिए:

apt-get install auditd
auditctl -a task,always
ausearch -i -sc execve

चोरी से लॉग सभी प्रक्रिया की शुरूआत


यदि वे अंदर नहीं दिखा रहे हैं top, तो वे औसत लोड करने में योगदान नहीं दे रहे हैं। इसे औसत लोड करने में योगदान करने के लिए, इसे लंबे समय तक प्रतीक्षा की स्थिति में होना चाहिए। सांख्यिकीय रूप से इसका मतलब है कि यह दिखाने जा रहा है top। यदि यह नहीं है, तो यह एक महत्वपूर्ण योगदानकर्ता नहीं है।
पैट्रिक

0

मेरे पास ऐसी स्थिति थी जब एनएफएस डिस्कनेक्ट हो गया और दुर्भाग्य से मैंने एक गलती की और सॉफ्ट माउंट विकल्प का उपयोग नहीं किया, इस प्रकार मॉनिटरिंग, lsof, और यहां तक ​​कि बैश सत्रों सहित मेरे लिनक्स सर्वर पर बहुत सारी प्रक्रियाएं समाप्त हो गईं ...।

टूटे हुए माउंट को अनमाउंट करने के बाद, सिस्टम ओवरलोडेड लग रहा था:

top - 00:03:48 up 15 days, 14:56,  3 users,  load average: 29, 21, 20

यह भयानक लग रहा था, लेकिन 15% से कम CPU उपयोग और कोई डिस्क I / O नहीं है। मुझे ps के माध्यम से जाने के लिए कुछ सलाह मिली, लेकिन इससे मदद नहीं मिली क्योंकि यह देखा कि प्रक्रियाएं ज्यादातर सो रही हैं।

फिर man psनींद के लिए मेरी रात बचाई, और जांच के बाद मुझे देखने के लिए बहुत महत्वपूर्ण फ्लैट्स मिले, जैसा कि बाद में पहचाना गया कि वे अटक गए थे ।

निष्पादित:

ps -e v

और जो प्रक्रियाएँ हैं Dया जो SLSTAT कॉलम में हैं, उन्हें देखें। ये ज़ोम्बी प्रक्रियाओं की तरह थे लेकिन ज़ज़ीन के रूप में पहचाने नहीं जाते थे।

डी - का अर्थ है ज्यादातर डिस्क (I / O) गतिविधि, लेकिन यह भी कि अगर आप ps -e vकुछ बार चलते हैं iostat 3और कोई गतिविधि नहीं देखते हैं, तो यह इंगित करता है कि यह अटक गया है i / o

एसएल - इसका मतलब है कि उस प्रक्रिया की याद में लॉक्ड पेजेड हैं, इस प्रकार यदि आप यह पहचान सकते हैं कि इस प्रक्रिया को इस तरह का व्यवहार नहीं करना चाहिए, तो यह अगले संभव उम्मीदवार है अगर यह बदलाव के बिना लंबी अवधि के लिए चिपक जाता है।

जांच के बाद मैंने फिर एक-एक करके मार डाला, और मेरा सिस्टम लोड औसत सामान्य हो गया।

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