"YaBB.cgi" bringen CPU auf 100%

Dave

Registered User
Hallo,


seid gestern habe ich damit begonnen, einige YaBB-Boards upzuloaden.
Kurz darauf musste ich feststellen, dass mein VServer sehr schnell in die Knie geht, wenn ein wenig CPU-Leistung gefordert wird (so Virtuozzo -> CPU im "Roten Bereich")... und ich habe noch
nicht mal 10% meines Speicherplatzes ausgenutzt... :-/

Letztendlich habe ich herausgefunden, dass die "YaBB.cgi" die ganze Leistung verbraucht.
Deshalb habe ich jetzt einen Cronjob, der alle 5Min. aufgerufen wird, eingerichtet, der die Prozesse der YaBB.cgi killen soll. Er hat den Inhalt: "#!/bin/sh killall YaBB.cgi" .

In Plesk, lasse ich diesen Inhalt der Datei "cron.sh" mit folg. Befehl ausführen:
"/var/www/vhosts/subdomains/yabb/cgi-bin/yabbserver/cron.sh > /dev/null 2>&1"

... Trotz, dass der Cronjob alle 5Min. neu aufgerufen wird, um die YaBB.cgi-Prozesse zu killen, schleicht der Server immer noch vor sich hin... Hab so das Gefühl, als würde der Cron gar nicht laufen!!:eek:

***Könnt ihr mir bitte einen Tipp geben, wie ich die Prozesse der YaBB.cgi killen kann?



Viele Grüße

Dave
 
Öhm Gegenfrage,

wenn deine Waschmaschine beim Schleudern fast umfällt, bindest du Sie dann fest oder schaust mal nach warum die fast umfällt ?

Was du da so beschreibst hört sich eher danach an als wolltest du die Auswirkungen bekämpfen ohne die Ursache zu kennen.

Ich würde mal versuchen Herauszufinden warum die YaBB.cgi fast 100% CPU braucht.
 
CyberLine said:
Ich würde mal versuchen Herauszufinden warum die YaBB.cgi fast 100% CPU braucht.

... Ja.... Wenn mehrere YaBB-Boards geöffnet sind, dann kommt es zu fast 100%. Aber warum das so ist, würde ich auch nur zu gerne wissen. Die Boards scheinen generell ziemlich serverlastig zu sein, obwohl diese von den Funktionen total "abgespeckt" sind. Keine Mods oder Addons.:rolleyes:
 
Hallo,

ich hatte ein ähnliches Problem. Ich habe auf einem Server einen Yabbserver laufen. Unter bestimmten Bedingungen wurde ein Yabb.cgi Prozess gestartet, welcher jeweils 100% Systemlast verursachte und sich nicht mehr beendete.

Wie ich herausgefunden hatte, handelt es sich bei mir um einen Programmfehler, welcher eine Endlosschleife verursachte. Anscheinend wird auf meinem Server (Managed) Perl nicht nach einer bestimmten Zeit beendet wie dies z.B. bei PHP der Fall ist.

Ich habe das Problem behoben indem ich das Script umprogrammiert hatte:

Zeile 463 InstantMessage.pl: exit 0 if($messcount == 1000);

Nicht gerade professionell, aber wenn eine Endlosschleife produziert wird, dann killt sich das Script nach 1000 Durchläufen, seitdem keine Probleme mehr.
 
Hallo,

sieht der abgeänderte Teil der Datei dann so aus:

Code:
if($INFO{'id'} ne "all") {
		$messcount=0;
		while($INFO{'id'} ne "$idcheck") { 
		($musername, $msub, $mdate, $immessage, $messageid, $imip, $mnew, $imwhere) = split( /\|/, $messages[$messcount]);
		$idcheck = $messageid;
		$messcount++;
		exit 0 if($messcount == 1000);}


Wenn ich das so wie im obigen Code mache, bekomme ich eine Fehlermeldung, wenn ich auf einen User-Avatar klicke:

Code:
Untrapped Error:
Missing right curly or square bracket at ../../Sources/InstantMessage.pl line 1189, at end of line syntax error at ../../Sources/InstantMessage.pl line 1189, at EOF Compilation failed in require at YaBB.cgi line 92.


Viele Grüße,

Dave
 
Last edited by a moderator:
Code:
if($INFO{'id'} ne "all") {
		$messcount=0;
		while($INFO{'id'} ne "$idcheck") { 
			($musername, $msub, $mdate, $immessage, $messageid, $imip, $mnew, $imwhere) = split( /\|/, $messages[$messcount]);
			$idcheck = $messageid;
			$messcount++;
			exit 0 if($messcount == 1000);
		}
}

Ich habe unten mal eine geschweifte Klammer hinzugefügt, damit der Block korrekt abgeschlossen ist. BTW ist der Code, also die obige Iteration, bei entsprechender Anzahl von Einträgen natürlich extrem zeitraubend und CPU-lastig und unschön.
 
Hallo,


wenn ich deinen Code einbaue, erhalte ich wieder eien Fehlermeldung:
Code:
Untrapped Error:
Unmatched right curly bracket at ../../Sources/InstantMessage.pl line 576, at end of line syntax error at ../../Sources/InstantMessage.pl line 576, near "}" Compilation failed in require at YaBB.cgi line 92.
:confused:


Viele Grüße,


Dave
 
Hallo Dave,

dann fehlt nach wie vor eine geschweifte Klammer "}", nur eben nicht mehr in dem jetzt korrigierten Block, sondern davor oder dahinter. Nimm doch einfach die originale InstantMessage.pl und füge die Zeile

Code:
exit 0 if($messcount == 1000);

wie gezeigt nochmals ein, dann wird es klappen.
 
grapevine said:
Hallo Dave,

dann fehlt nach wie vor eine geschweifte Klammer "}", nur eben nicht mehr in dem jetzt korrigierten Block, sondern davor oder dahinter. Nimm doch einfach die originale InstantMessage.pl und füge die Zeile

Code:
exit 0 if($messcount == 1000);

wie gezeigt nochmals ein, dann wird es klappen.

Hallo,

nein... die Fehlermeldung erhalte ich immer noch - was man dazusagen muss: die Fehlermeldung tritt nur auf, wenn ich mit einem Klick auf den Avatar einem User eine PM schicken möchte.

Viele Grüße,

Dave
 
Dave said:
nein... die Fehlermeldung erhalte ich immer noch

Was soll ich sagen - das liegt aber nicht an dieser einen Zeile, wenn du sie denn so eingebaut hast.

Habe mir jetzt spaßeshalber mal das YaBB 2.1 heruntergezogen und in die instantmessage.pl geschaut, dort ist dieser Programmteil mittlerweile schon anders formuliert. Wenn ich Dir bei dem Workaround also konkret helfen soll, dann musst Du mir Deine instantmessage.pl einfach mal schicken.
 
grapevine said:
Was soll ich sagen - das liegt aber nicht an dieser einen Zeile, wenn du sie denn so eingebaut hast.

Habe mir jetzt spaßeshalber mal das YaBB 2.1 heruntergezogen und in die instantmessage.pl geschaut, dort ist dieser Programmteil mittlerweile schon anders formuliert. Wenn ich Dir bei dem Workaround also konkret helfen soll, dann musst Du mir Deine instantmessage.pl einfach mal schicken.

Habe dir eine PM mit der Datei geschickt, da diese zu lang wäre, um sie einfach hir mit der CODE-Funktion zu posten!
 
Tja, wie schon vermutet, Deine instantmessage.pl ist syntaktisch korrekt. Die Fehlermeldung des Interpreters ist an sich eindeutig, aber warum die mit der Zeile auftaucht und ohne nicht, keine Ahnung was da bei Dir passiert.
 
grapevine said:
Tja, wie schon vermutet, Deine instantmessage.pl ist syntaktisch korrekt. Die Fehlermeldung des Interpreters ist an sich eindeutig, aber warum die mit der Zeile auftaucht und ohne nicht, keine Ahnung was da bei Dir passiert.

Am besten behalte ich wohl die original-Datei bei....:confused:
 
Back
Top