2009-07-29 7 views
12

लिनक्स में, क्या सीपीयू लोड मशीन के लिए एक अंतर्निहित सी लाइब्रेरी फ़ंक्शन है? संभवतः मैं/proc में फ़ाइल खोलने और पार्स करने के लिए अपना स्वयं का फ़ंक्शन लिख सकता हूं, लेकिन ऐसा लगता है कि एक बेहतर तरीका होना चाहिए।सीपीआई लिनक्स में सीपीयू लोड प्राप्त करने के लिए

  • पोर्टेबल
  • एक आधार RHEL4 स्थापना से परे किसी भी पुस्तकालयों की आवश्यकता नहीं चाहिए होने की जरूरत नहीं है।
+1

प्रवेश/proc काम करने के लिए यूनिक्स तरीका है। * सबकुछ एक फाइल है। * मैं इकट्ठा करता हूं कि आप एक एमएस प्रोग्रामर हैं? वे हमेशा इस अवधारणा के साथ असहज लगते हैं। –

+1

एक्सेसिंग/proc इसे करने के लिए लिनक्स तरीका है। प्रत्येक यूनिक्स में यह सुविधा नहीं है (हालांकि यह अच्छा है)। – dmckee

+0

@ डीएमकी: आरएचईएल 4 करता है, और वह @ जेसीएस की आवश्यकता –

उत्तर

11

तुम सच में एक सी इंटरफ़ेस उपयोग getloadavg() है, जो भी /proc बिना Unixes में काम करता है चाहते हैं।

इसमें सभी विवरणों के साथ man page है।

+1

दरअसल है। "यूनिक्स मार्ग" के बारे में उपरोक्त सभी पफिंग, इसके बावजूद यह वास्तव में पोर्टेबल तरीका है। लिनक्स पर, ज़ाहिर है, यह सिर्फ एक/proc पढ़ने के शीर्ष पर एक लाइब्रेरी फ़ंक्शन है। –

+0

लोड औसत _not_ cpu लोड का प्रतिनिधित्व है। सीपीयू लोड से, मेरा मतलब है कि आपके रेस्तरां में कितने वेटर्स व्यस्त हैं। भार औसत आपको बैठने के लिए बाहर इंतजार कर रहे ग्राहकों की संख्या देता है + वर्तमान में खाने वाले ग्राहकों की संख्या। यह _same_ बात नहीं है। मेरा मानना ​​है कि '/ proc/stat' का उपयोग करना अधिक प्रासंगिक है। –

1

मेरी समझ यह है कि/proc के शामिल पार्सिंग उस प्रकार की चीज़ के लिए आधिकारिक इंटरफ़ेस है (वहां कई फाइलें हैं जो वास्तव में उपयोगकर्ता को प्रस्तुत किए जाने से पहले पार्स किए जाने के लिए हैं)।

7

लिनक्स पर सीपीयू लोड के बारे में जानकारी प्राप्त करने की पसंदीदा तरीका /proc/stat, /proc/loadavg और /proc/अपटाइम से पढ़ने के लिए है। सभी सामान्य लिनक्स उपयोगिताओं जैसे शीर्ष इस विधि का उपयोग करें।

2
proc (5) आदमी पृष्ठ से

:

/proc/loadavg 
      The first three fields in this file are load average figures 
      giving the number of jobs in the run queue (state R) or waiting 
      for disk I/O (state D) averaged over 1, 5, and 15 minutes. They 
      are the same as the load average numbers given by uptime(1) and 
      other programs. The fourth field consists of two numbers sepaâ 
      rated by a slash (/). The first of these is the number of curâ 
      rently executing kernel scheduling entities (processes, 
      threads); this will be less than or equal to the number of CPUs. 
      The value after the slash is the number of kernel scheduling 
      entities that currently exist on the system. The fifth field is 
      the PID of the process that was most recently created on the 
      system. 
1

"लोड औसत" बहुत उपयोगी नहीं हो सकता है। हम इसे सीमित उपयोग के रूप में पाते हैं, क्योंकि यह वास्तव में आपको नहीं बताता कि कितना सीपीयू उपयोग किया जा रहा है, केवल "चलाने के लिए तैयार" कार्यों की औसत संख्या। "चलाने के लिए तैयार" कुछ हद तक व्यक्तिपरक है, लेकिन बहुत उपयोगी नहीं है क्योंकि इसमें अक्सर आईओ के लिए प्रतीक्षा की जाने वाली प्रक्रियाएं शामिल होती हैं।

व्यस्त सिस्टम पर, हम केवल 8 कोर के साथ मशीनों पर 20+ के औसत भार देखते हैं, और फिर भी CPU अपेक्षाकृत निष्क्रिय हैं।

आप, देखने के लिए क्या सीपीयू उपयोग में है चाहता हूँ/proc में विभिन्न फाइलों पर एक नजर है, तो

संबंधित मुद्दे