HI,
ist ja schick hier geworden ;o) war schon lange nicht mehr hier ...
Ok, zu mein Problem:
Ich habe eine Cluster aus drei pysikalischen Web-Server. Jetzt habe ich ein Skript geschrieben welches Bilder zur Laufzeit erstellt und ausgeben soll. Die Bilderstellung dauert ewig lange...
Da ich mehrere Server betreibe möchte ich die Rechenleistung optimal ausnutzen.
Praktisch erzeugt die Website (liegt nicht im Cluster) wo das Bild benötigt wird eine GET Übergabe an den Clusterverbund.
Dieser bekommt die Aufgabe die Bilder zu erzeugen und dann per FTP zur WEbsites zu schieben.
das funktioniert soweit auch ganz gut.
Um die einzelnen Cluster Server nicht in die Knie zu zwingen habe ich mir folgendes Konzept ausgedacht.
1. ) ich nutze den Shared Memory Bereich hinterlege dort die Serverkennung und die PIDs
maximal 5-10 Bilder pro Server sollen zur ist Zeit erzeugt werden. (Muss ich noch testen)
jetzt geht es um die Route zur Berechnung des Ramverbrauches und Cpu Belastung
$ps_lines = @explode("\n", `ps -u www-data -o rsz -o vsz -o pid`);
if(is_array($ps_lines))
{
foreach($ps_lines as $temp => $ps_line)
{
@list($RSZ,$VSZ,$PIDS) = @preg_split('/\s+/', $ps_line);
if(is_numeric($RSZ.$VSZ.$PID) and $RSZ.$VSZ.$PID > 0)
VSZ & Virtuelle Prozessgröße
RSS & Größe des residenten Speichers
$RSZ
$VSZ
Ich möchte ein Schwellwert für CPU und RAM modellieren um den Server vor "Überlastung" zu schützen...
Verbraucht die Bildbearbeitung mehr als 40 Prozent an RAM bzw. CPU muss ein anderer Cluster benutzt werden. Das macht er automatisch bei der nächsten GET Anfrage
Sollte doch möglich sein ;o)