कुछ संभावित तरीके हैं जिनसे आप यह कर सकते हैं। ध्यान दें कि यह एक भगोड़ा परिदृश्य में इसकी पूरी तरह से संभव प्रक्रियाओं का कारण बनता है, न कि केवल एक।
पहला तरीका पृष्ठभूमि में चलाने और डेटा का उत्पादन करने के लिए पिडस्टेट स्थापित करना है।
pidstat -u 600 >/var/log/pidstats.log & disown $!
यह आपको सिस्टम के दस मिनट के अंतराल पर चलने का एक काफी विस्तृत दृष्टिकोण देगा। मेरा सुझाव है कि यह आपकी पहली कॉल ऑफ़ पोर्ट होगी क्योंकि यह सबसे मूल्यवान / विश्वसनीय डेटा के साथ काम करता है।
इसके साथ एक समस्या है, मुख्य रूप से अगर बॉक्स एक भगोड़ा सीपीयू लूप में चला जाता है और भारी लोड पैदा करता है - आपकी गारंटी नहीं है कि आपकी वास्तविक प्रक्रिया लोड के दौरान समय पर तरीके से निष्पादित होगी (यदि बिल्कुल भी) तो आप वास्तव में आउटपुट को याद कर सकते हैं !
इसके लिए देखने का दूसरा तरीका प्रक्रिया लेखांकन को सक्षम करना है। संभवतः दीर्घकालिक विकल्प के अधिक।
accton on
यह प्रक्रिया लेखांकन को सक्षम करेगा (यदि पहले से नहीं जोड़ा गया है)। यदि यह पहले नहीं चल रहा था, तो इसे चलाने के लिए समय की आवश्यकता होगी।
भागे हुए, कहने के लिए 24 घंटे - आप फिर ऐसी कमांड चला सकते हैं (जो इस तरह आउटपुट का उत्पादन करेगा)
# sa --percentages --separate-times
108 100.00% 7.84re 100.00% 0.00u 100.00% 0.00s 100.00% 0avio 19803k
2 1.85% 0.00re 0.05% 0.00u 75.00% 0.00s 0.00% 0avio 29328k troff
2 1.85% 0.37re 4.73% 0.00u 25.00% 0.00s 44.44% 0avio 29632k man
7 6.48% 0.00re 0.01% 0.00u 0.00% 0.00s 44.44% 0avio 28400k ps
4 3.70% 0.00re 0.02% 0.00u 0.00% 0.00s 11.11% 0avio 9753k ***other*
26 24.07% 0.08re 1.01% 0.00u 0.00% 0.00s 0.00% 0avio 1130k sa
14 12.96% 0.00re 0.01% 0.00u 0.00% 0.00s 0.00% 0avio 28544k ksmtuned*
14 12.96% 0.00re 0.01% 0.00u 0.00% 0.00s 0.00% 0avio 28096k awk
14 12.96% 0.00re 0.01% 0.00u 0.00% 0.00s 0.00% 0avio 29623k man*
7 6.48% 7.00re 89.26% 0.00u 0.00% 0.00s
कॉलम इस प्रकार हैं:
- कॉल की संख्या
- कॉल का प्रतिशत
- इस प्रकार की सभी प्रक्रियाओं पर खर्च किए गए वास्तविक समय की मात्रा।
- प्रतिशत।
- उपयोगकर्ता CPU समय
- प्रतिशत
- सिस्टम CPU समय।
- औसत आईओ कॉल।
- प्रतिशत
- कमान का नाम
आप जिस चीज़ की तलाश कर रहे हैं वह प्रक्रिया प्रकार हैं जो सबसे अधिक उपयोगकर्ता / सिस्टम CPU समय उत्पन्न करते हैं।
यह CPU समय (शीर्ष पंक्ति) की कुल मात्रा के रूप में डेटा को तोड़ता है और फिर उस CPU समय को कैसे विभाजित किया गया है। प्रक्रिया लेखांकन केवल तभी ठीक से खाता है जब इसकी प्रक्रिया शुरू होती है, इसलिए यह संभव है कि सभी सेवाओं को सुनिश्चित करने के लिए इसे सक्षम करने के बाद सिस्टम को पुनरारंभ करें।
यह, किसी भी तरह से वास्तव में आपको एक निश्चित विचार नहीं देता है कि यह क्या प्रक्रिया हो सकती है जो इस समस्या का कारण है, लेकिन आपको अच्छा अनुभव दे सकती है। चूंकि यह 24 घंटे का स्नैपशॉट हो सकता है, इसलिए इसे ध्यान में रखते हुए तिरछे परिणामों की संभावना होती है। इसकी कर्नेल विशेषता के बाद से इसे हमेशा लॉग इन करना चाहिए और पिडस्टेट के विपरीत हमेशा भारी लोड के दौरान भी आउटपुट उत्पन्न होगा।
उपलब्ध अंतिम विकल्प भी प्रक्रिया लेखांकन का उपयोग करता है ताकि आप इसे ऊपर के रूप में चालू कर सकें, लेकिन फिर प्रत्येक प्रक्रिया के लिए cpu आँकड़ों के साथ समस्या के समय निष्पादित प्रक्रियाओं के कुछ आँकड़े बनाने के लिए प्रोग्राम "लास्टकॉम" का उपयोग करें।
lastcomm | grep "May 8 22:[01234]"
kworker/1:0 F root __ 0.00 secs Tue May 8 22:20
sleep root __ 0.00 secs Tue May 8 22:49
sa root pts/0 0.00 secs Tue May 8 22:49
sa root pts/0 0.00 secs Tue May 8 22:49
sa X root pts/0 0.00 secs Tue May 8 22:49
ksmtuned F root __ 0.00 secs Tue May 8 22:49
awk root __ 0.00 secs Tue May 8 22:49
यह आपको कुछ संकेत भी दे सकता है कि समस्या क्या हो सकती है।