Zum Inhalt springen
  • 0

Hohe Auslastung (CPU/Speicher) Worker Process (ISS) - Troubleshouting?!


theloc866

Frage

Hallo Zusammen,

Ich habe beim Kunden einen IIS Webserver im Einsatz auf dem ein WebPortal eines Herstellers läuft.

Regelmäßig, stelle ich eine entsprechende hohe Auslastung der CPU und des Speichers fest, was regelmässig dazu führt, dass nichts mehr geht ( Anwender können auf das WebPortal nicht mehr zugreifen).

Kann mir vielleicht jemand helfen, wie ich am besten vorgehen, um das Problem besser einzugrenzen? weitere Software oder ähnliches zu installieren wird schwierig werden, dass es sich um die PRD-Umgebung des Kunden handelt.

Infos zu meinem Webserver:

  • Windows Server 2012 R2 Standard
  • 8 GB RAM
  • IIS 8.5

Ich habe mal zwei Anhänge, die vielleicht mehr Infos geben, beigefügt. Falls noch weitere Infos notwendig sind, lasst es mich gerne wissen.

 

Ich danke im Voraus!

LG

Unbenannt2.JPG

Unbenannt1.JPG

Link zu diesem Kommentar
Auf anderen Seiten teilen

Empfohlene Beiträge

  • 0
vor 5 Stunden schrieb charmanta:

Ein 2012er Server im Jahr 2021 in Prod Umgebung ???

Zumindest nicht mehr lange ...

Zumindest noch bis 10.10.2023 (Ende des erweiterten Supports).

vor 5 Stunden schrieb charmanta:

8 GB sind auch nicht der Renner für nen Server... wie stark ist denn im Normalbetrieb der Speicher ausgelastet ? Geht die Kiste in den virtuellen Speicher und wie schnell sind die Platten ?

Zusätzlich noch:

Blech, oder virtualisiert? Wenn virtualisiert, kann man dem Hobel mal etwas mehr Dampf unter der Haube verpassen?

Was sagt das Windows Eventlog?

Und, trotz der Tatsache dass Linux definitiv nicht mein Freund ist: warum ein Windowshobel mit IIS und keine Linuxkiste mit Apache?

Wer krallt sich denn (angeblich) die ganze CPU und RAM? Läuft sie langsam voll oder macht es *schlürp* und sie geht von "schaut doch ganz gut aus" auf "WTF?!?"

Bonusfrage: Warum merkt man erst dass die Kiste auf Anschlag läuft wenn sie steht, gibt’s kein Monitoring?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 8 Stunden schrieb charmanta:

Ein 2012er Server im Jahr 2021 in Prod Umgebung ???

Zumindest nicht mehr lange ...

8 GB sind auch nicht der Renner für nen Server... wie stark ist denn im Normalbetrieb der Speicher ausgelastet ? Geht die Kiste in den virtuellen Speicher und wie schnell sind die Platten ?

Ich habe mal einen Screenshot beigefügt, mit der Hoffnung, dass die Antwort auf deine Frage größtenteils hervorgeht.

Der 2012er Server hängt damit zusammen, dass die Anwendung in der aktuellen Version nicht auf einer 2016er Kiste supportet wird, der Kunde aber auch noch nicht bereit ist, die Anwendung auf die neueste Version zu migrieren... :S

Unbenannt3.JPG

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 3 Stunden schrieb Maniska:

Blech, oder virtualisiert? Wenn virtualisiert, kann man dem Hobel mal etwas mehr Dampf unter der Haube verpassen?

Virtuell - Theoretisch könnte man das, aber der Kunde blockt dann immer ab, weil es ja unter Umständen mit (Mehr-) Kosten verbunden ist.

vor 3 Stunden schrieb Maniska:

Zumindest noch bis 10.10.2023 (Ende des erweiterten Supports).

Und, trotz der Tatsache dass Linux definitiv nicht mein Freund ist: warum ein Windowshobel mit IIS und keine Linuxkiste mit Apache?

Berechtigte Frage! Der Hersteller, der eingesetzten Anwendung empfahl Windows + IIS.

vor 3 Stunden schrieb Maniska:

Wer krallt sich denn (angeblich) die ganze CPU und RAM? Läuft sie langsam voll oder macht es *schlürp* und sie geht von "schaut doch ganz gut aus" auf "WTF?!?"

Soweit ich das einschätzen und beurteilen kann, bläht sich der IIS Worker Process dann immer mehr und mehr - vor allem beim Speicher - auf. Als würde irgendein WebPortal-Zugriff eines Anwenders diesen Effekt verursachen und selbst wenn der Anwender gar nicht mehr aktiv auf dem WebPortal zugreift, löscht sich dieser "aufblähende" Zugriff nicht.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
Zitat

Lieber Kunde,

wir haben folgende Möglichkeiten:

  • weiter sporadische Totalausfälle und kostenintensives Symptom-Herumgedoktore
  • sowieso anstehende Migrationen auf aktuelle Versionen und adequaten Unterbau zeitnah durchführen

oder wie sagt ihr sowas einem Kunden?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Ok, ich fasse zusammen:

Kunde hat $Anwendung in älterer Version gemäß Herstellerspezifikation (?) am Laufen. Kunde will weder für mehr Ressourcen noch für die aktuelle Version von $Anwendung Geld in die Hand nehmen, bezahlt aber fleißig dafür dass du auf Fehlersuche gehst, bzw für die (temporäre) Fehlerbehebung. Du sagst Kunde dass er die Ressourcen erhöhen soll was er nicht machen will, weil das vielleicht Geld kosten könnte?

Diagnose: Du bist zu günstig!

Krückenlösung: Preise erhöhen :D

Und den Webserver via scheduled task nachts zwischen 3 und 4 neu starten lassen. Wenn es reicht dann nur 1x die Woche, wenn es öfter sein muss, dann halt öfter. Kunde (schriftlich!!!) Bescheid geben, auch dass es möglich sein kann dass der Server mal nicht sauber hoch kommt und das nur eine Übergangslösung ist und ob er das so will

 

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 1 Minute schrieb allesweg:

oder wie sagt ihr sowas einem Kunden?

Ich werde einen Teufel tun und dir widersprechen. Ich sehe ja das Dilemma selbst.

Allerdings frage ich mich ehrlich gesagt  auch, handelt es sich tatsächlich um ein Performance-Problem oder steckt doch irgendwo ein technischer Fehler bzw. falsche Konfiguration. 

Ob es sich um das letztgenannte handelt, wollte ich das im Grunde ja kategorisch ausschließen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 4 Minuten schrieb Maniska:

Und den Webserver via scheduled task nachts zwischen 3 und 4 neu starten lassen. Wenn es reicht dann nur 1x die Woche, wenn es öfter sein muss, dann halt öfter. Kunde (schriftlich!!!) Bescheid geben, auch dass es möglich sein kann dass der Servermal nicht sauber hoch kommt und das nur eine Übergangslösung ist und ob er das so will

Das habe ich sogar schon gemacht. Aber bisher lasse ich nur den IIS-Windows-Dienst neu starten. Verhindert aber leider nicht, dass sich sporadisch tagsüber der genannte Prozess ungewollt aufbläht.

Den Dienst auch gesteuert tagsüber einmal neuzustarten, ist halt suboptimal, da dann ja laufende Session gekillt werden.

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 6 Minuten schrieb theloc866:

Ob es sich um das letztgenannte handelt, wollte ich das im Grunde ja kategorisch ausschließen.

Dann schnapp dir den Support vom Hersteller und frag den.

Der kann dir dann sagen ob oder ob nicht. Als Bonus sagt der dir dann vielleicht auch: "dafür gibts keine Support mehr, nimm die neue Version oder leb damit"

vor 3 Minuten schrieb theloc866:

Das habe ich sogar schon gemacht. Aber bisher lasse ich nur den IIS-Windows-Dienst neu starten. Verhindert aber leider nicht, dass sich sporadisch tagsüber der genannte Prozess ungewollt aufbläht.

Den Dienst auch gesteuert tagsüber einmal neuzustarten, ist halt suboptimal, da dann ja laufende Session gekillt werden.

Bedeutet der Kunde ruft an 4/5 Tagen wegen diesem Problem an? Lege ich hier mal die Preise meines DL für die reine Ticketaufnahme(!) und Lösungsversuch im 1st Level zu Grunde sind das 80€/Woche (pauschal 20€ pro Ticket + Zeit vom 2nd oder 3rd Level).

Also entweder ist das System so unwichtig, dass es auch egal sein müsste ob laufende Sessions gekillt werde, oder euer Kunde ist intelligent wie Götterspieße.

Nur aus Interesse, was kostet denn die neue Version von $Anwendung?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 16 Minuten schrieb Maniska:

Bedeutet der Kunde ruft an 4/5 Tagen wegen diesem Problem an? Lege ich hier mal die Preise meines DL für die reine Ticketaufnahme(!) und Lösungsversuch im 1st Level zu Grunde sind das 80€/Woche (pauschal 20€ pro Ticket + Zeit vom 2nd oder 3rd Level).

Also entweder ist das System so unwichtig, dass es auch egal sein müsste ob laufende Sessions gekillt werde, oder euer Kunde ist intelligent wie Götterspieße

Gute Argumente, Danke dafür!

vor 16 Minuten schrieb Maniska:

Nur aus Interesse, was kostet denn die neue Version von $Anwendung?

Die Migration auf wäre in der Tat schon etwas aufwändiger (> 100 PT). Gerade weil es viele kundenspezifische Anpassungen gibt. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 30 Minuten schrieb theloc866:

Die Migration auf wäre in der Tat schon etwas aufwändiger (> 100 PT). Gerade weil es viele kundenspezifische Anpassungen gibt. 

Ok, also ein hochgradig individualisiertes System, das mit den (mindest-(?))Anforderungen nicht performant läuft, wahrscheinlich nie lief, für den Kunden geschäftskritisch ist(?), relativ regelmäßig täglich abschmiert, und bei dem es dem Kunden zu teuer ist, dafür zu sorgen (oder sorgen zu lassen) dass es anständig läuft?

Kann man das so sagen?

Bringt der Kunde wirklich so viel Geld ein, dass sich die grauen Haare lohnen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 44 Minuten schrieb Maniska:

Ok, also ein hochgradig individualisiertes System, das mit den (mindest-(?))Anforderungen nicht performant läuft, wahrscheinlich nie lief, für den Kunden geschäftskritisch ist(?), relativ regelmäßig täglich abschmiert, und bei dem es dem Kunden zu teuer ist, dafür zu sorgen (oder sorgen zu lassen) dass es anständig läuft?

Kann man das so sagen?

Bringt der Kunde wirklich so viel Geld ein, dass sich die grauen Haare lohnen?

Willkommen in meiner (Arbeits-) Welt :) Relativ gut zusammengefasst. 

Weiß ja selbst, dass das nicht alles optimal, ökonomisch ect. ist. 

Nichtsdestotrotz habe ich die Wunsch-Vorstellung, das genannte Verhalten (Hohe System-Auslastung) besser bzw. genauer analysieren zu können und nicht mich einfach damit nur zufrieden zu geben: "Die Kiste ist zu schwach, Betriebssystem zu alt..." 

Was nicht heißen soll, dass es unter dem Strich so ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
Gerade eben schrieb allesweg:

Das ist keine angepasste Kundenanwendung mehr, das ist eine hysterisch gewucherte Individuallösung, welche außerhalb jeglicher Parameter rumoxydiert

Das kann und mag ja auch sein. Hilft mir - bei allem nötigen Respekt - beim Troubleshooting aber auch nicht weiter. 

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

korrekt. Also zurück zum Thema ...

Wie ich der Prozessliste entnehmen kann läuft da auch icinga und splunk drauf.

Ich bin kein WIndows Spezi und mir fehlen die Win spezifischen Tools, aber da gibts sicher auch was.

- was passiert wenn sich die Mühle hochschaukelt ? Du brauchst ne Langzeitüberwachung der Prozesse samt Last und Speicherbedarf, parallel dazu Bild der Maschine mit Speicher / VMemory und Disk Aktivität. Das kann icinga wenn Du passende Überwachungen drauf has

- gibt es einen Auslöser ? Sprich kannst Du eine Aktivität oder einen bestimmten Zeitpunkt identifzieren ?

- was sagt die Splunk Auswertung der Logs ? Vermutlich zeigen die Eventlogs dass auch systemseitig irgendwas gegen den Poller fährt ...

- Kannst Du Support bei M$ aufmachen ? Wäre auch noch ein Ansatz

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Man könnte auch einen anderen Weg probieren und versuchen, sofern man eine gute Daten- und Systemsicherung hat, die Anwendung auf eine andere Infrastruktur zu transplantieren.

Klar, bei einer Testmigration ist man schon fast in einer Echtmigration. Der Migrationsfad könnte aber mögliche Fehlerquellen offenbaren. Zumindest könnte man dann heraus finden, ob sich bei Änderung der darunter liegenden Infrastruktur das Verhalten ändert. Sofern man die "Anwendung" als Black Box betrachtet, schon mal ein erster Ansatzpunkt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Zunächst Danke für deine konstruktiven Anmerkungen bzw. Hinweise. Prüfe ich mal im Detail.

vor 7 Minuten schrieb charmanta:

gibt es einen Auslöser ? Sprich kannst Du eine Aktivität oder einen bestimmten Zeitpunkt identifzieren ?

Ich habe ja irgendwie das Gefühl, dass irgendein WebPortal-Aufruf eines Anwenders den genannten Effekt verursacht. Das vielleicht irgendeine Abfrage mitverantwortlich sein könnte.

Gibt es Möglichkeiten, dass genauer herauszufinden? Ich will ja gar nicht kategorisch ausschließen, dass in den "Codes / Abfragen" ein "Fehler" steckt.

vor 10 Minuten schrieb charmanta:

was sagt die Splunk Auswertung der Logs ? Vermutlich zeigen die Eventlogs dass auch systemseitig irgendwas gegen den Poller fährt ...

Hast du vielleicht einen Tipp, wonach ich in den Evenlogs genau Ausschau halten könnte? Aufgrund der fehlenden Erfahrung, suche ich ja hier nach jedem helfenden Strohhalm. :)

Danke im Voraus - weiß die Hilfe zu schätzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 17 Minuten schrieb theloc866:

Ich habe ja irgendwie das Gefühl, dass irgendein WebPortal-Aufruf eines Anwenders den genannten Effekt verursacht. Das vielleicht irgendeine Abfrage mitverantwortlich sein könnte.

läuft das vlt ne Datenbank drunter die sich die Karten legt ?

Sorry, Debugging von WIn ist nicht meins ... aber hier tummeln sich bestimmt genug andere M$ Kenner. @Maniska ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 5 Stunden schrieb charmanta:

läuft das vlt ne Datenbank drunter die sich die Karten legt ?

Sorry, Debugging von WIn ist nicht meins ... aber hier tummeln sich bestimmt genug andere M$ Kenner. @Maniska ?

ja dem ist in der Tat so. 

Eine SQL-DB. Es gibt eine SQL-DB, eine Webserver und entsprechende (Master-)Jobserver für die erwähnte (Kunden-)Anwendung.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 7 Stunden schrieb theloc866:

Gibt es Möglichkeiten, dass genauer herauszufinden?

da gibt es hier etwas lesestoff: https://stackify.com/w3wp-high-cpu-usage/

Geht die last irgendwann von selbst runter?

um deinen aufwand mit dem problem zu reduzieren kannst du den AppPool automatisch neu starten lassen.

image.png.1669258e65c0d22d9a1c7e473e0825f1.png

Das findest du unter den erweiterten Einstellungen des Pools. Wenn die CPU im Limitzeitraum immer über dem Grenzwert liegt, wird die Limitaktion ausgeführt. Dort gibst du dann KillW3wp an. Da es in dem Moment eh zu spät ist für die Sessions, ist es dann auch egal. 

 

PS: du kannst auch in der SQL-DB im Aktivitätsmonitor schauen ob es Querys gibt die hängen, gelockt sind oder einfach ewig benötigen.

Bearbeitet von _n4p_
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0

Auch an dich vorab ein Dankeschön für deine Rückmeldung! Ich bin mir durchaus bewusst, dass gerade in der IT es nicht immer so einfach ist, Fehler "einfach" mal einzugrenzen und dass es selten "die eine Lösung" gibt. Oft ist ein Zusammenspiel aus mehreren Umständen.

 

vor 25 Minuten schrieb _n4p_:

da gibt es hier etwas lesestoff: https://stackify.com/w3wp-high-cpu-usage/

Danke für den Tipp! Lese ich mich da mal durch.

vor 25 Minuten schrieb _n4p_:

Geht die last irgendwann von selbst runter?

Nein. 

vor 26 Minuten schrieb _n4p_:

um deinen aufwand mit dem problem zu reduzieren kannst du den AppPool automatisch neu starten lassen.

image.png.1669258e65c0d22d9a1c7e473e0825f1.png

Das findest du unter den erweiterten Einstellungen des Pools. Wenn die CPU im Limitzeitraum immer über dem Grenzwert liegt, wird die Limitaktion ausgeführt. Dort gibst du dann KillW3wp an. Da es in dem Moment eh zu spät ist für die Sessions, ist es dann auch egal.

Klingt mega, schaue ich mir an und prüfe ich. DANKE!!

 

vor 26 Minuten schrieb _n4p_:

du kannst auch in der SQL-DB im Aktivitätsmonitor schauen ob es Querys gibt die hängen, gelockt sind oder einfach ewig benötigen.

Die Problematik mit der Datenbank wollte ich noch gar nicht aufmachen bzw. erwähnen, da ich dachte, dass es dann noch komplizierter wird. 

Dort haben wir regelmässige "Headblocker" (Ich hoffe, dass ist der korrekte Ausdruck.) Ich muss dann diese manuell "killen", damit die Prozess-Verarbeitung endlich weitergeht. Im Aktivitätsmonitor sehe ich ja unter Details dann auch die entsprechenden Querys. Im Groben kann ich mit denen auch etwas anfangen bzw. zuordnen. 

Da ich das System von "heute auf morgen" übernommen habe, ist es für mich dennoch schwierig, herauszufinden, was an den Queries so komplex ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor 3 Minuten schrieb theloc866:

was an den Queries so komplex ist.

dafür kannst du dir den ausführungsplan anzeigen lassen. Entweder per rechtsklick auf die abfrage selbst, oder du kopierst die abfrage aus den details des prozesses. den prozess selbst kannst du dir auch mit dem sql profiler ansehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 0
vor einer Stunde schrieb _n4p_:

dafür kannst du dir den ausführungsplan anzeigen lassen. Entweder per rechtsklick auf die abfrage selbst, oder du kopierst die abfrage aus den details des prozesses. den prozess selbst kannst du dir auch mit dem sql profiler ansehen.

Das werde ich bei dem nächsten "Headblock" mal testen. Für den SQL Profiler habe ich leider auf der PRD nicht ausreichend Rechte...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...