IIS 6.0 erzeugt hohe CPU-Last

ElBarto

Member
Hallo Gemeinde!

Ich habe seit über einem halben Jahr den IIS 6.0 mit PHP laufen. Aktuell mit 5.20. Seit ein paar Tagen erzeugt der IIS (w3wp.exe) teilweise eine CPU-Last von 100%, wenn man eine Seite abruft. Der Arbeitsspeicherverbrauch steigt dann teilweise von 20 MB auf über 100 MB an. Nach 3 - 10 Sekunden fällt die Systemlast wieder ab und auch der Arbeitsspeicherverbrauch geht wieder zurück. Hab das ganze dann auch mit PHP 5.15 probiert. Da ist der selbe Effekt.

Hat vielleicht jemand eine Idee, was da los sein könnte?
 
Hi,

haste mal dran gedacht, dass das Script ggf. "Amok" läuft? Will sagen:
-unendliche Schleifen
-Iterative Durchläufe was sinnvoll mit Rekursion zu lösen ist
-große Bilder konvertieren

Schau mal, ob du es reproduzieren kannst bzw. eingrenzen kannst auf einen User bzw. ein Script.

Vielleicht hilft dir das ja auch weiter.

Wenn da z.B. phpBB läuft und eine Erweiterung, die schlecht programmiert ist läuft, dann kann das ohne Probleme passieren.

Greets
Projekt2501
 
Ja, es läuft ein phpBB-Forum. Daran wurde aber seit Monaten nichts verändert. Hmm. Auch sonst wurde nichts verändert.
 
So schaut das ganze dann aus. Immer wieder ein kurze Vollauslastung, bei der die Seite dann nicht mehr lädt. :(
 

Attachments

  • auslastung.JPG
    auslastung.JPG
    101.4 KB · Views: 250
Guten Abend,

ist das ein VPS? So ähnlich sieht's bei mir aus, wenn ein "Nachbar" seinen VPS am Anschlag betreibt.

mic
 
Ja, wäre ein recht üppiger VPS. Im Übrigen würde ich auch auf ein Script-Problem tippen. Nur bei .PHP-Seiten oder auch bei .HTML? Kein Hinweis in den Ereignissanzeigen?
 
Last edited by a moderator:
Denke html kannste ausschließen.

FileMon sollte dir helfen. Schau einfach welche PHP Datei gelesen wird zu dem Zeitpunkt.

Google -> FileMon

Ist echt sehr nützlich.

Greets
Projekt2501
 
Das ist eine sehr gute Idee mit Filemon. Hab schon rausgefunden, dass er immer beim Zugriff auf eine bestimmte MySQL-Datenbank auf 100% steigt. Mal schauen, ob ich das rausbekomme.
 
Prüf mal, ob da nicht vielleicht ein Konstrukt drin vorhanden ist, dass alle Einträge aus der Datenbank abruft und dann erst im PHP Script selbst filtert.
Das ist z.B. ein sehr guter Kandidat für sowas.

Quasi sowas von der Form (pseudocode):

mysql_query("SELECT * FROM artikel")

foreach ($artikel){
// Anweisung für jeden Artikel, z.B. Filtern nach Kriterien
}

Wäre übrigens super wenn du mir berichten würdest was es genau war.

Greets
Projekt2501
 
Back
Top