मैं प्रति प्रक्रिया CPU उपयोग कैसे लॉग इन करूं?


18

मेरे पास लाइनोड पर एक बॉक्स है जो अजीब व्यवहार से गुजर रहा है। हर अब और फिर सीपीयू और डिस्क I / O में 100% शूट होगा और सर्वर अप्रतिसादी हो जाएगा और बूट होना होगा। मैं बेहतर जांच करना चाहता हूं कि क्या चल रहा है, लेकिन मुझे नहीं पता कि सीपीयू और आई / ओ के लिए कौन जिम्मेदार है। मैं जेंटू 2.6.18 चला रहा हूं।

जवाबों:


20

आप ऐसा कुछ करने की कोशिश कर सकते हैं:

while true; do ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10 >> logfile.txt; printf "\n" >> logfile.txt; sleep 3; done

यह आपको CPU उपयोग के मामले में शीर्ष दस प्रक्रियाओं को दिखाएगा। आप "हेड -10" में 10 को बदलकर अलग-अलग संख्या में दिखाए गए प्रक्रियाओं की संख्या को बदल सकते हैं, और कितनी बार यह 3 को "स्लीप 3" में बदलकर या "स्लीप 3" भाग को पूरी तरह से हटाकर अपडेट करता है।


5
सुनिश्चित करें कि आपके पास वहां किसी प्रकार की नींद है, अन्यथा एक अच्छा मौका है कि आपकी शेल प्रक्रिया हमेशा शीर्ष 10 में
रहेगी

मुझे लगता है कि sort -nrसंख्यात्मक रूप से
छांटना

2
BTW, आपको इस प्रक्रिया को सर्वोच्च प्राथमिकता देनी चाहिए, इसके लिए उच्च भार की चोटियों के दौरान उपयोगी बने रहने के लिए (जो कि इसके जीवन की बात है, आखिरकार)।
१५:१५ पर स्पेसर

12

ऊपर की जाँच करें यह बहुत कुछ सब कुछ आप चाहते हैं की एक द्विआधारी लॉग लिख देंगे और फिर आप दिन के समय स्लाइस के माध्यम से जाने के लिए गुई की तरह एक शीर्ष का उपयोग कर सकते हैं (डिफ़ॉल्ट हर 5 मिनट में डेटा लेना है)। http://www.atcomputing.nl/Tools/atop/


6

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


5

अन्य उत्तरों ने केवल आपको दिखाया है कि आप इस बात पर ध्यान दे सकते हैं कि वर्तमान में क्या चल रहा है, जो सिस्टम को रिबूट करने में मदद नहीं करता है।

यदि आप चाहते हैं कि यह जानकारी पोस्टरिटी (या बिलिंग, या आपके पास जो भी अन्य उपयोग हो सकता है) के लिए दर्ज की गई है, तो आप जो चाहते हैं वह प्रक्रिया लेखांकन है।

यहाँ एक HOWTO है जो मुझे मिला, लेकिन मैं ईमानदार रहूँगा - एक दशक हो गया है जब से मैंने प्रक्रिया लेखांकन का उपयोग किया है।

http://tldp.org/HOWTO/Process-Accounting/


2

वास्तविक समय की निगरानी के लिए शॉन के समाधान के लिए एक अधिक उपयोगकर्ता-अनुकूल दृष्टिकोण:

while true; do clear; ps -eo pcpu,pmem,pid,user,args --sort=-pcpu c|head -20; sleep 1; done

यह शीर्ष 20 प्रक्रियाओं का एक स्थिर दृष्टिकोण प्रदान करेगा जो हर 1 सेकंड में ताज़ा हो जाएगा। पीएस कमांड में "सी" विकल्प पूरे आर्ग कमांड के बजाय प्रक्रिया निष्पादन योग्य नाम प्रिंट करेगा। यदि आपको इसके बजाय पूरे आदेश की जानकारी चाहिए तो आप इस विकल्प को छोड़ सकते हैं। % मेमोरी उपयोग कॉलम भी जोड़ा गया।


1

क्या Gentoo में "टॉप" कमांड का स्वागत नहीं है?

machine:~/# top

आपको कौन से प्रोग्राम सबसे अधिक लोड का कारण बनता है, इसके रनिंग आँकड़े आपको देना चाहिए।


हाँ, मुझे पता है, लेकिन मुझे लगता है कि मैं बाद में इतिहास देख सकता हूं, मैं लॉग इन करना चाहूंगा। जब सीपीयू स्पाइक्स करता है, तो मशीन अप्रतिसादी हो जाती है, इसलिए मैं यह topदेखने के लिए लॉग इन नहीं कर सकता कि कौन दोषी है। मैं बाद में वापस जांच करना चाहता हूं और देखना चाहता हूं कि यह किस प्रक्रिया में हुआ।
हेल्डर एस रिबेरो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.