मैं कैसे बता सकता हूं कि यदि उच्च-सीपीयू उपयोग नहीं हैं तो क्या प्रक्रियाएं उच्च भार का कारण बन रही हैं?


12

कभी-कभी मेरे सर्वर "टॉप" प्रोग्राम में एक उच्च लोड औसत दिखाएगा (जैसे लोड 4-कोर मशीन पर ~ 10 है), लेकिन वास्तविक सीपीयू उपयोग विशेष रूप से उच्च नहीं है।

मुझे लगता है कि मुद्दा यह है कि कई I / O- गहन कार्य चल रहे हैं। क्या इन नौकरियों की पहचान करने का कोई आसान तरीका है जो लोड का कारण बन रहा है, यदि उनके "% CPU" मान शीर्ष में नहीं हैं?


क्या आप उस सारांश क्षेत्र को पेस्ट कर सकते हैं जिसे आप topकमांड चलाते समय देखते हैं ?
mfriedman

जवाबों:


7

iostatइस तरह के आँकड़े रिपोर्ट कर सकते हैं। आमतौर पर पैकेज sysstat में आपके डिस्ट्रो में शामिल है।

dstat भी देखने लायक हो सकता है, यह एक आधुनिक प्रतिस्थापन है।


+1 क्योंकि मेरा जवाब iostatहोने वाला था ।
एर्नी

4

यदि आपके पास कर्नेल में IO लेखांकन है, तो आप इस iotopतरह की जानकारी देने के लिए उपयोग कर सकते हैं । साथ ही, संग्रहण जैसे निगरानी उपकरण डेटा पर रिकॉर्ड और रिपोर्ट कर सकते हैं।


4

यह जानने के लिए कि उच्च भार का कारण क्या है, आप कुछ चीजों की जांच कर सकते हैं।

  • vmstat -w आपको ovierwiem दिखाएगा (प्रक्रियाएं, स्वैप, मेम, सीपीयू, आईओ, सिस्टम)
  • pmstat -P ALL आपको प्रति CPU कोर (% iowait के साथ) आँकड़े प्रदान करेगा
  • iostat -x उच्च% उपयोग या लंबे समय से प्रतीक्षित या बड़े औसत कतार आकार के लिए देखें
    • के साथ गहरी खुदाई iotop
  • ps -ax राज्य डी की तलाश करें जो अबाधित नींद (आमतौर पर आईओ) है, इसे एक बार और जांचें कि क्या वे अभी भी डी स्थिति में हैं
    • स्ट्रेस के साथ गहरी खुदाई करें
    • फ़ाइलों और lsof और netstat के साथ उन प्रक्रियाओं के कनेक्शन की जाँच करें
  • sar / sysstat - उस टूल से आप न केवल "अब" आंकड़े देख सकते हैं, बल्कि यह भी जांच सकते हैं कि रात में क्या हो रहा था
    • sar -b - समग्र io गतिविधियों
    • sar -d - व्यक्तिगत ब्लॉक डिवाइस io गतिविधियों
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.