php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 09.11.2011, 18:03  
Neuer Benutzer
 
Registriert seit: 09.11.2011
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
creeper befindet sich auf einem aufstrebenden Ast
Standard CPU-Auslastung auslesen unter Linux

Hallo Leute,

ich bin gerade neu hier und wollte gleich mal meine Lösung zur CPU-Auslastung auslesen unter Linux präsentieren.

Ich heute den ganzen Nachmittag damit verbracht ne Lösung zu finden die ohne Zusatzpakete wie zb. phpsysinfo auskommt da mein Web-Server auf einem CentOS 4 ( ich weiß ist schon alt aber der letzte mit i586 unterstützung ) läuft.

Wenn man mehr als einen CPU-Kern hat kann man $cores anpassen.


Nun zum Code:
PHP-Code:
<?php
$cores 
1;

$output1 null;
$output2 null;

// First output of /proc/stat
exec("cat /proc/stat"$output1);

// Set the time interval
sleep(1);

// Second output of /proc/stat
exec("cat /proc/stat"$output2);

// CPU total load
$cpu_load_total 0;

for ( 
$i=$i $cores $i++ )
{
  
// Get informations from first row of /proc/stat
  
$cpu_stat_1 explode(" "$output1$i ]);
  
$cpu_stat_2 explode(" "$output2$i ]);

  
// Init arrays
  
$info1 = array( "user"   => $cpu_stat_1[1], 
                  
"nice"   => $cpu_stat_1[2],
                  
"system" => $cpu_stat_1[3], 
                  
"idle"   => $cpu_stat_1[4]
                );
                
  
$info2 = array( "user"   => $cpu_stat_2[1], 
                  
"nice"   => $cpu_stat_2[2],
                  
"system" => $cpu_stat_2[3], 
                  
"idle"   => $cpu_stat_2[4]
                );

  
// Informations that should involve the calculation
  
$idlesum $info2["idle"]-$info1["idle"] +
             
$info2["system"]-$info1["system"];

  
// Sum the outputvalues
  
$sum1 array_sum$info1 );
  
$sum2 array_sum$info2 );

  
// Calculate the cpu-load
  
$load = ( - ( $idlesum / ( $sum2 $sum1 ) ) ) *100;
  
  
$cpu_load_total += $load;
}

// Devide the total cpu load because we sum it in the loop
$cpu_load_total /= $cores;

// Round it to 2 decimals
echo round$cpu_load_total).'% CPU-Load<br>';
?>
Hier ein Praxisbeispiel:
http://www.rherzog.com/cpu.php

Natürlich lässt sich das ganze auch in eine Funktion packen.
Man muss dann lediglich die letzte Zeile "echo" entfernen und mit "return $cpu_load_total;" ersetzen.

Bei der eigenen Webseite bei einem Webhoster wirds wohl nicht klappen da diese den Zugriff auf /proc/stat unterbinden werden.

Dieser Link kann auch helfen:
http://de.wikipedia.org/wiki/Load#Pr...erte_bei_Linux

Kritik zum Code erwünscht

Grüße Ralf

Geändert von creeper (09.11.2011 um 18:05 Uhr). Grund: Titel geändert
creeper ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.11.2011, 01:19  
Erfahrener Benutzer
 
Registriert seit: 13.05.2011
Beiträge: 188
PHP-Kenntnisse:
Fortgeschritten
php1704 wird schon bald berühmt werden
Standard

PHP-Code:
exec("cat /proc/stat"$output1); 
Die Dateien kannst du auch einfach einlesen:
PHP-Code:
$output1 file('/proc/stat'); 
Grüße.
php1704 ist offline   Mit Zitat antworten
Alt 10.11.2011, 02:25  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Da gibs auch x fertige Klassen für, goggledoo: 'php processor load'
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
opensuse 11.3 apache2 kein php horstschulz Server, Hosting und Workstations 10 09.05.2011 12:03
Blog-Launch: Refining Linux Manko10 Off-Topic Diskussionen 17 19.08.2010 22:20
Keine Verbindung zur DB mit Linux (SuSe) frustrated Datenbanken 7 28.07.2010 15:41
Microsoft virtualisert unter Linux BlackPanther Off-Topic Diskussionen 1 09.05.2010 19:12
selfhosting - welches linux? Screeze Server, Hosting und Workstations 15 22.11.2009 17:28
Linux als zweites OS. Was brauche ich alles? Ticos Server, Hosting und Workstations 4 09.02.2007 15:30
linux 9.3 startmenü chiliGREEN Server, Hosting und Workstations 9 30.07.2006 23:17
Webseiten werden bei Linux nicht richtig angezeigt Server, Hosting und Workstations 13 16.10.2005 13:39
[Erledigt] erste Gehversuche mit Linux Server, Hosting und Workstations 19 01.06.2005 21:34
AOL bei Linux ClaBo3 Server, Hosting und Workstations 7 18.05.2005 13:24
[Erledigt] TTF-Fonts unter Linux anders als unter Win (GD2) Server, Hosting und Workstations 2 15.03.2005 11:25
[Erledigt] Linux Server, Hosting und Workstations 14 25.11.2004 17:04
webserver mit linux flyingeagle Server, Hosting und Workstations 10 02.11.2004 19:14
Umstieg auf Linux Quadaptor Server, Hosting und Workstations 17 05.10.2004 11:55
[Erledigt] PHP Script von Windows auf Linux PHP-Fortgeschrittene 7 15.06.2004 13:23

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php cpu auslastung, cpu load php linux, linux prozessorauslastung, linux cpu-last auslesen, linux cpu auslastung, /proc/stat php, prozessorauslastung linux, php prozessorauslastung aulesen linux, php processor load, cpu kerne unter linux auslesen, cpu last auslesen linux, linux cpulast, linux prozessauslastung, linux php cpu auslastung, cpu-load lesen, php cpu last, menüleiste, cpu auslesen linux, linux cpu auslastung auslesen, cpu auslastung linux

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:43 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum