सीपीयू लोड + लिनक्स टर्मिनल में प्रति कोर आवृत्ति?


0

मैं वैज्ञानिक कंप्यूटिंग कर रहा हूं और मुझे सीपीयू आवृत्ति और प्रत्येक कोर के भार (उबंटू 14.04 w / Gnome3 पर 2 कोर हैं) पर नजर रखने की जरूरत है। मैं इस बैश स्क्रिप्ट के साथ आवृत्ति देख सकता हूं:

echo ""
while true; do
 if [ ! -z $ind ] ; then ind=; else ind="."; fi
 f0=$(sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq)
 f1=$(sudo cat /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freq)
 printf " CPU MHz: %5i %5i $ind \r" $(($f0/1000)) $(($f1/1000)) 
 sleep 0.5
done 

आउटपुट इस तरह दिखता है: CPU MHz: 800 2401

और सीपीयू के साथ वर्तमान लोड देखें:

glances -1rmnd

मैं एक ही टर्मिनल विंडो में आवृत्ति और एक कॉम्पैक्ट प्रारूप के साथ प्रत्येक कोर (जैसे%) में वर्तमान लोड प्राप्त करना चाहूंगा। आदर्श रूप में यह इस तरह दिखेगा:

CPU MHz: 800 2401 Load: 12% 100%

किसी भी सलाह का स्वागत है, यहां तक ​​कि अलग-अलग समाधान, या कार्यक्रम। चीयर्स / जे

जवाबों:


0

खैर मुझे गुगली करने और कुछ मदद मिलने के बाद एक समाधान मिला। अगर संदर्भ के लिए पोस्ट करूँगा। यह मेरी संशोधित बैश स्क्रिप्ट है:

while true; do
 load=$(sar -P ALL 1 1 | awk 'NR==5,NR==6 {print $3}' | tr '\n' '\t')
 if [ ! -z $ind ] ; then ind=; else ind="_"; fi
 f0=$(sudo cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq)
 f1=$(sudo cat /sys/devices/system/cpu/cpu1/cpufreq/cpuinfo_cur_freq)
 clear
 echo ""
 printf "\t_cpu0_ _cpu1$ind\n"
 printf "MHz:\t%5i  %5i \n" $(($f0/1000)) $(($f1/1000)) 
 printf "Load:\t $load"
done

पैकेज sar -P ALL 1 1से उपयोग करने से sysstatआपको प्रोसेसिंग सामग्री का प्रिंटआउट मिल जाता है। awk5 और 6 पंक्तियों का चयन करता है, और कॉलम 3, जबकि tr '\n' '\t'एक नई-लाइन को एक टैब में बदल देता है। एक टर्मिनल विंडो में आउटपुट है:

        _cpu0_ _cpu1_
MHz:     2000   2400 
Load:    3.92   1.00

इफ-स्टेटमेंट से ब्लिंकिंग कर्सर सुविधा होती है क्योंकि संख्या लोड के तहत लंबे समय तक स्थिर हो सकती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.