CentOS पर फाइल करने के लिए एक CPU / RAM उपयोग लिखना समय की अवधि में लॉग ऑन करता है


8

मैं एक आवेदन या कोड की लाइन की तलाश कर रहा हूं जो मुझे एक प्रक्रिया का निरीक्षण करने में मदद करेगा, कई चर में जानकारी को बचाएगा, फिर एक फ़ाइल पर एकत्रित जानकारी डाल देगा।

मैं बदलाव के साथ कोशिश कर रहा हूँ, topलेकिन कोई भाग्य नहीं। मैं कई CentOS वर्चुअल सर्वर चला रहा हूँ, VM एक 2GB RAM, 2 प्रोसेसर है।

एक स्क्रिप्ट जो एक निर्दिष्ट समय में एक पाठ फ़ाइल पर जानकारी के साथ लाइनें लिखते समय काम करती है, इसलिए अंत में मैं डेटा के साथ तालिका काम कर सकता हूं।

मैं सर्वर पर परीक्षण करने के लिए तनाव में जा रहा हूं, और मैं कुछ आंकड़े बनाने के लिए डेटा लेना चाहूंगा।

जवाबों:


11

मानक psपर्याप्त है।

while true; do ps o pcpu,rsz -p $pid | tail -n1 >>usage.log; sleep $interval; done

परिणाम:

0.0  3352
0.3 31640
0.4 36924
0.5 36052
...

पहला क्षेत्र CPU उपयोग% में है, दूसरा भौतिक मेमोरी उपयोग है जो किट्स में है।


सही है, मैं पहले से ही एक शीर्ष बैच उत्पादन से सभी डेटा को साफ करने के लिए एक लंबी स्क्रिप्ट बनाई थी, लेकिन जिस तरह से सरल बेहतर और प्रभावकारिता मैं बहुत बहुत धन्यवाद, धन्यवाद!
कीपोंक

अंत में मैं अपनी स्क्रिप्ट का उपयोग करता रहा, क्योंकि पीएस मुझे लोड औसत देता है जो सामान्य रूप से सीपीयू% के समान है लेकिन एक नियम नहीं है, एक त्वरित Google खोज में इसके बारे में अधिक जानकारी
15:15 पर keponk

1
यहाँ% CPU अंतराल के दौरान उपयोग किया जाने वाला% नहीं है, लेकिन कार्यक्रम के पूरे चलने के समय पर औसत प्रतिशत है। मेरा मानना ​​है कि यह भ्रामक है।
विल सीवल

2

यदि आप सटीक समय की परवाह करते हैं और प्रतिशत में सीपीयू चाहते हैं:

watch --precise -n 1 'top -b -n 1 -p [PID] | tail -n 1 | awk "{print \$9}" >> [PID].log'

1

मैं सुझाव दूंगा sadc/ sar


क्या यह केवल सिस्टम-व्यापी नहीं है?
अप्रैल को व्हाइटवार्क

@whitequark: यह के संस्करण पर निर्भर करता है sar। कुछ संस्करण sar -x PIDदूसरों के उपयोग का उपयोग करते हैं pidstat -p PID
अगली सूचना तक रोक दिया गया।

जब तक यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
साजी 89

0

आप यह देखने की कोशिश कर रहे हैं कि किसी विशेष प्रक्रिया के लिए कितने सीपीयू समय की आवश्यकता है।

मैं CentOS के लिए CPU स्टेटमेंट टूल का सुझाव देने जा रहा था ? लेकिन यह पूरी प्रणाली के लिए हो जाता है, केवल एक प्रक्रिया के लिए नहीं।

कोई भी प्रक्रिया CPU आउटपुट को ps के आउटपुट में दिखाएगी:

$ ps -ef | egrep blah
root     13988 11152  0 Dec16 ?        00:00:05 sshd: xxx [priv]
xxx      14024 13988  0 Dec16 ?        00:06:00 sshd: xxx@pts/0
xxx      14032 14024  0 Dec16 pts/0    07:00:00 -bash
root      1194   679  0 Apr24 ?        2-05:15:14 [kswapd0]
root      1195   679  0 Apr24 ?        2-06:35:49 [kswapd1]
  • 00:00:00 सीपीयू के घंटे / मिनट / सेकंड है। यह जम जाएगा।
  • यदि उपयोगकर्ता नहीं है तो आपको यह देखने के लिए अनुमतियों की आवश्यकता होगी।
  • एक बार जब यह मान दिन में बदल जाता है तो प्रारूप बदल जाता है; 2 दिन से ऊपर। आपकी पार्सिंग दिनचर्या को संभालना होगा।

इस बिंदु पर, पायथन के साथ आउटपुट को पार्स करें, उस पर कुछ तारीख गणित काम करें, और आप सुनहरा हो।


0

निम्न कमांड को विशिष्ट प्रक्रिया (pid) के लिए हर 40 सेकंड में CPU और मेमोरी उपयोग का औसत मिलता है

pidstat 40 -ru -p <pid>

मेरे मामले के लिए आउटपुट (CPU उपयोग के लिए पहली दो लाइनें, मेमोरी के लिए दूसरी दो लाइनें):

02:15:07 PM       PID    %usr %system  %guest    %CPU   CPU  Command
02:15:47 PM     24563    0.65    0.07    0.00    0.73     3  java

02:15:07 PM       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
02:15:47 PM     24563      6.95      0.00 13047972 2123268   6.52  java
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.