Linux CPU Auslastung ermitteln - howto?!

Kantholy

Lt. Junior Grade
Registriert
Aug. 2006
Beiträge
323
Hi Leute, ich hab ein kleines Problem, und zwar möchte ich gern über die Konsole die aktuelle CPU Auslastung Auslesen, und zwar die aktuelle...

die von den letzen 5/10/15 min ist mir zu ungenau, und "top" läuft auch nicht, weil ich das mit nem Skript weiterverarbeiten will :(

meine Methode die ich grade benutz ist die Werte aus der ersten Zeile der /proc/stat zusammenzuzählen.... für jmd der was davon versteht - hier mal der Code:

Code:
	private function getCPUTimings() {
		$statfile = file('/proc/stat');
		$cpuinfo = $statfile[0];
		$cpuinfo = explode(' ', $cpuinfo);
		
		$cpuinfo = array(
			'user' => $cpuinfo[2],
			'nice' => $cpuinfo[3],
			'system' => $cpuinfo[4],
			'idle' => $cpuinfo[5]
		);
		
		return $cpuinfo;
	}
	
	public function CPU($accuracy = 2) {
		$start = $this->getCPUTimings();
		sleep($this->cpuInterval);
		$end = $this->getCPUTimings();

		$diff = array(
			'user' => $end['user'] - $start['user'],
			'nice' => $end['nice'] - $start['nice'],
			'system' => $end['system'] - $start['system'],
			'idle' => $end['idle'] - $start['idle']
		);
		$total = array_sum($diff);
		$usage = $total - $diff['idle'];
		return round(100 * $usage / $total, $accuracy);
	}

das benutz ich wie gesagt zur Zeit... vom Prinzip her müssts ja passen, da ich die usage (also die summe von user/nice/system) prozentual von der ganzen Zeit (also usage + idle) ausrechne... aber es kann nicht sein, dass da jede Minute andere Werte rauskommen, und zwar zwischen 20 und 60% CPU Auslastung - was ich irgendwie nicht so ganz glaube...

deswegen meine Frage - wie bekomm ich das anders bzw. genauer raus?! hat da jemand irgendwelche Ideen?
 
Zurück
Oben