2016-02-06 5 views
5

का उपयोग कर अंतिम 5 मिनट समग्र सीपीयू उपयोग की जांच कैसे कर सकता हूं मुझे सर sar -u 1 3 का यह उदाहरण पता है जो अगले 3 सेकंड के लिए 1 सेकंड अंतराल के आंकड़े देता है।मैं एसएआर

हालांकि सर भी पृष्ठभूमि में जानकारी एकत्रित करता रहता है (मेरा क्रॉन प्रत्येक मिनट के लिए आंकड़े एकत्र करने के लिए सेट करता है)। क्या पिछले 5 मिनट के आंकड़े और उसके औसत को बताने के लिए मैं सर कमांड का उपयोग करके बस पूछ सकता हूं।

अभी मैं आदेश

interval=5; sar -f /var/log/sysstat/sa22 | tail -n $interval | head -n -1 | awk '{print $4+$6}'| awk '{s+=$1} END {print s/$interval}' 

नीचे निम्नलिखित पिछले 5 मिनट में समग्र CPU उपयोग जांचने के उपयोग कर रहा हूँ।

क्या कोई बेहतर तरीका है?

उत्तर

0

दुर्भाग्य से जब अंतराल के साथ सर में -f विकल्प का उपयोग करते हैं और गणना करते हैं तो यह दिए गए अंतराल के लिए औसत मान वापस नहीं करता है (जैसा कि आप उम्मीद करेंगे)। इसके बजाय यह हमेशा सर फ़ाइल

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

उम्मीद है कि इससे मदद मिलती है।

पीटर रोड्स।

#!/usr/bin/perl 
 

 
$interval = 300;  # seconds. 
 
$epoch = `date +%s`; 
 
$epoch -= $interval; 
 
$time  = `date -d \@$epoch +%H:%M:00`; 
 
$dom  = `date +%d`; 
 
chomp($time,$dom); 
 
system("sar -f /var/log/sysstat/sa$dom -B -s $time 300 1");