Posts mit dem Label Performance werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Performance werden angezeigt. Alle Posts anzeigen

Dienstag, 25. Januar 2011

SharePoint 2010 WarmUp Script

In der 2007er Version von SharePoint war ein WarmUp Skript für SharePoint, zum Beispiel dieses von Joel Oleson, Standard. Denn schon damals hatte es der IIS 6.0 an sich, die Webanwendungen Nachts zu recyclen und somit den Cache zu leeren. Der erste Seitenaufruf einer SharePoint-Seite ist nach dem leeren des Caches sehr langsam. Diese Problemstellung hat sich in Zeiten von IIS 7.5 und SharePoint 2010 nicht geändert. Nun gibt es ja für den IIS 7.5 WarmUp Plugin, für dessen Uninstall ich auch schon einen Blogpost geschrieben habe :-)
Die große Preisfrage ist: Was hab ich getan, nachdem das Plugin weg war? Ganz einfach, ich habe ein PowerShell Skript geschrieben, das durch jedes Web iteriert und über eine Webrequest jede Seite einmal aufruft. Das Skript wird durch eine geplante Windows Aufgabe von einem SharePoint Server ausgeführt.
Eine einfache Version eines solchen Skripts sieht folgendermaßen aus:



  1. Add-PsSnapin Microsoft.SharePoint.PowerShell -erroraction silentlycontinue  
  2.   
  3.  foreach ($webApp in get-SPWebApplication)  
  4.     {      
  5.         foreach ($site in $webApp.Sites)  
  6.         {  
  7.             foreach ($web in get-SPWeb -site $site)  
  8.             {  
  9.                 $request = [System.Net.WebRequest]::Create($web.URL)  
  10.                 $request.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials  
  11.                 $request.proxy = [System.Net.WebRequest]::DefaultWebProxy  
  12.                 $request.ContentType = "application/x-www-form-urlencoded"  
  13.                 $request.Method = "GET"  
  14.         try{  
  15.                     $request.GetResponse().StatusCode  
  16.             WRITE-HOST $request.GetResponse().StatusCode  
  17.                 }  
  18.                 catch [Net.WebException]{  
  19.                     $WebExceptionMessage = $_.Exception.Message  
  20.                     WRITE-HOST "Folgender Fehler ist aufgetreteb: " + $WebExceptionMessage  
  21.                 }  
  22.             }  
  23.         }  
  24.     }  
Im Gegensatz zu den Skripts, die ich beim meiner ersten Suche gefunden habe ist das oben erfrischend simpel und lädt zur phantasievollen Weiterentwicklung ein. Wer das ganze eher pragmatisch angeht, kopiert einfach den Code oben in eine Textdatei, speichert diese mit der Endung "ps1" und führt diese ps1 als Aktion im geplanten Windows Tasks einmal die Nacht nach zwei Uhr morgens aus. Beachtet dabei, dass das Skript nur auf einem SharePoint Server ausgeführt werden kann.

Good luck,

Andreas







Montag, 17. Januar 2011

IIS 7.5 Application Warm-Up Uninstall

Für IIS 7.5 findet man hier ein nettes WarmUp Tool:  Download IIS 7.5 Application Warm-Up . Dieses Tool ermöglicht es einem Administrator, den ersten Benutzer am frühen Morgen nach dem nächtlichen Application Recycle des IIS trotzdem eine angenehm schnelle SharePoint Erfahrung zu ermöglichen. Zu den alten IIS 6.0 und SharePoint 2007 Zeiten hatte man noch Skripts eingesetzt, um nach einem Reset des IIS die SharePoint-Seiten einmal in den Cache zu laden. Das IIS Tool aus dem Hause Microsoft ermöglicht nun eine Konfiguration über die IIS Manager Oberfläche. Man findet zahlreiche gute Blog-Einträge die das Vorgehen hierzu beschreiben, zum Beispiel hier.

Das Einrichten ist denkbar einfach, ebenso die Deinstallation des Tools. Leider ist die Konfiguration auch nach der Deinstallation noch in der web.config der SharePoint-Webanwendungen. Zur Freude eines jeden SharePoint Admins führt eine invalide web.config von SharePoint bei jedem Seitenaufruf zu folgendem Fehler:

HTTP Error 500.19 - Internal Server ErrorThe requested page cannot be accessed because the related configuration data for the page is invalid.Detailed Error Information

Um den Fehler zu beseitigen, muss man jede web.config von Hand anpassen und den Knoten "httpWarmup" in jeder web.config suchen und entfernen. 


Good luck,

Andreas 

Dienstag, 17. November 2009

SharePoint 2010: Take control!! Resource Throttling

Many admins, same dream: Control the performance of the SharePoint Portal!!! Control and/ or eliminate the big performance killers for your System ( Beware – I don’t mean the biggest performance killer for every System: the end user! It’s a game, without them you can’t play it! ;-) ) is the first and best steps against phone calls like “Ohhhhh, MY Portal is soooo sloooooow!!”.
One of this performance killers in MOSS 2007 and WSS 3.0 are large lists and libraries. This means not only many items, but big items with many columns also.
Many Columns = Many rows in AllUserData Database per Item = bigger query = lower performance for every user using the same Content DB. Remember: all content from a Website Collection, maybe from one Web Application, is stored in the AllUserData Content. Right there the bottleneck for your Portal is hidden!! One large list locks your AllUserData table and every other request from other user from other subsites. And to make your Admionistrator's horror scenario complete: You can not prevent a user for executing a big request in 2007!

Take control with SharePoint 2010's Resource throttling settings! You can find the setting in the Central Administration under the Genral Setting of a Web Application.





You can see, in SharePoint 2010 you can configure the maximum number of items a query can include, for normal users and for administrators. You can configure a "Happy Hour" time window for large queries.

Take control! Configure Resource Throttling in SharePoint 2010!

Regards,

Andreas