SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




IIS Worker Process

Geprüfte Antwort Dieser Beitrag hat 7 Antworten

Ohne Rang
142 Beiträge
Andman erstellt 16 Dez. 2016 14:14
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo!

Ich habe PerformanceProbleme auf einem System. Im TaskManager habe ich einen IIS Worker Process dessen RAM Auslastung permanent bei 4200 MB ist. Die dazugehörige Webanwendung habe ich identifiziert.

Da sind um die 300 User auf ca 500 Websites unterwegs. "Passt" die Auslastung dazu oder ist diese viel zu hoch. Teilweise werden darauf auch kleine PowerShellScripte im Hintergrund angestoßen.

MfG Andy

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 16 Dez. 2016 14:25
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Application Pools sollten immer nur um die 500 MB belegen. Alles darüber ist eigentlich immer ein Zeichen, daß etwas nicht stimmt (kurzzeitig kann es mal ein GB sein, aber wirklich nur sehr kurz).

Habt Ihr selbst entwickelten Code laufen oder sonstwas, das verantwortlich sein könnte? Der Code von Microsoft macht das alleine nicht...

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
142 Beiträge
Andman Als Antwort am 16 Dez. 2016 14:48
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok. Das ist ja dann wirklich etwas hoch. Wir verwenden in der Anwendung recht viele PowerShellScripte.
Es gibt ca. 400 Projekte (Webseiten) die auf Basis eines Templates erstellt werden und eine Zentrale Liste um Zeiten für diese Projekte zu erfassen.
Wenn also ein User eine Zeit in der zentralen Liste hinzufügt, wird per PowerShell das passende Projekt gesucht und dort wiederrum in eine Liste dieser Zeiteintrag geschrieben. Teilweise sind das recht komplexe Scripte. Außerdem gibt es dahinter fast schon ein ausuferndes Berechtigungskonzept. Die Berechtigungen werden auch alle mit Scripts gesetzt.
Die komplette Projektanlage erfolgt ebenfalls PowerShell.

Also im Endeffekt kann man sagen, das jeder klick in der Anwendung irgend ein Script auslöst und ich hab mir auch schon gedacht, das diese zu der hohen Auslastung führen.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 16 Dez. 2016 15:35
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Werden die Scripte wirklich durch den Webserver ausgelöst? Normalerweise läuft ein gestartetes PowerShell-Script ja nicht im w3wp, sondern in einem eigenen Prozeß.

Aber falls das so ist, kann es natürlich sehr gut sein, daß die Scripte verantwortlich sind. SharePoint-Objekte müssen ordentlich "aufgeräumt" werden. Lies möglichst viel davon: https://www.google.de/search?q=sharepoint+powershell+dispose

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
142 Beiträge
Andman Als Antwort am 16 Dez. 2016 15:44
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hm, wenn du so fragst laufen die Wahrscheinlich nicht über den Worker Prozess. Wobei ich mir dann noch weniger erklären kann, warum die Auslastung so hoch ist. Disposed werden die Objekte eigentlich alle in den Scripts. Aber werd wohl nicht drum rum kommen, die alle nochmal durchzuschauen und mal ne Ausführliche Analyse zu machen.

Ohne Rang
142 Beiträge
Andman Als Antwort am 19 Dez. 2016 12:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Nochmal eine Frage zum Disposen.

Ist das grundsätzlich empfehlenswert?

Start-SPAssignment –Global

#PowerShell script goes here

Stop-SPAssignment –Global

(http://get-spscripts.com/2010/09/easy-object-disposal-in-sharepoint-2010.html)

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 19 Dez. 2016 16:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ja, ist es. Aber das ist ja nur global, d.h. es gilt für die Gesamtlaufzeit des Scripts. Wenn ein Script länger läuft und zwischendurch weitere SPSite/SPWeb-Instanzen benutzt, dann sollten die auch zwischendrin aufgeräumt werden (mit eigenen SPAssignement-Scopes).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
142 Beiträge
Andman Als Antwort am 20 Dez. 2016 12:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok Danke! Hast mir weitergeholfen. :)