Die Aktivierung des IIS Blob Cache ist eins der bekanntesten Best Practices um die Performance beim Rendern der Seiten zu erhöhen, den SQL Server zu entlasten und die Latenz zu senken. Dabei werden statische Inhalte wie Bilder, Audio und Video auf dem Web Frond End Server vom IIS zwischengespeichert und müssen nicht mehr aus der Datenbank abgerufen werden. Zur Aktivierung muss in der jeweiligen Web.Config auf jedem Webfrontendserver der IIS Blob Cache aktiviert werden. Bei mehreren Webanwendungen und Frontendservern wird das schnell zur Fleißarbeit. Man könnte zwar die Dateien mittels Script auf allen Servern anpassen, aber mittels SharePoint API wäre das doch viel komfortabler, gerade da die Einstellungen sich direkt in der Datensicherung befinden und neue Server die Funktion automatisch aktivieren.

Microsoft hat in der Zentraladministration leider keine Konfiguration vorgesehen. Allerdings gibt es für jede Webanwendung eine Eigenschaft “WebConfigModification” mit der man Werte in der Web.Config automatisch anpassen kann. Wer sich die Anpassungen anzeigen lassen möchte kann dies mittels PowerShell und dem folgenden Befehl tun:

$WebApp = Get-SPWebApplication http://url-der-Webanwendung
$WebApp.WebConfigModification

Wenn ihre Farm keine SharePoint Lösungen installiert hat wird diese Eigenschaft vermutlich leer sein. Damit sie die IISBlob Cache Einstellungen nun hinzufügen können habe ich eine PowerShell Funktion von Josh Gavant aus dem Microsoft Blog um weitere Konfigurationsoptionen erweitert. Im Original kann der Blobcache aktiviert werden und die maximale Cache Zeit auf dem Client Browser konfiguriert werden. Zu guter Letzt können die Einstellungen wieder entfernt werden. Meine Erweiterung enthält den lokalen Pfad zur Speicherung des Blobcache, das maximale Speichervolumen und die Möglichkeit die maximale Dauer des Caching auf dem Client zu konfigurieren. Abschließend wurde die Funktionen noch um Hilfetexte erweitert, so dass ein Get-Help <Command> die Funktionen vollständig erklärt.

Laden sie die Funktionen indem sie in einer PowerShell die Datei SetBlobCache.ps1 starten. Achten sie dabei auf den ersten Punkt. Sonst lädt PowerShell die Funktion nicht.

PS C:\Users\adminch> . .\SetBlobCache.ps1

Nun können sie mit dem Befehl Enable-SPBlobCache den IIS BlobCache aktivieren. Übergeben sie dazu zumindest die Webanwendung die konfiguriert werden soll.
Beispiel für die Webanwendung http://intranet:

Enable-SPBlobCache –WebApplication http://intranet

Nun aktiviert das Script den IISBlobCache in der Webanwendung und nutzt dabei die Standardwerte:

  • Speicherort: c:\Blobcache\14
  • MaxSize: 10 GB
  • MaxAge: 24h

Um die Werte an ihre eigenen Wünsche anzupassen hängen sie die Option und den Wert einfach an den Befehl an.
Beispiel für die Webanwendung http://intranet mit dem Cache Speicherort d:\IISBlobCache

Enable-SPBlobCache –WebApplication http://intranet –Location d:\IISBlobCache

Um sich alle Parameternamen anzeigen zu lassen können sie die Hilfe mittels Get-Help Enable-SPBlobCache –detailed aufrufen.
Um den IIS Blob Cache für alle Webanwendungen zu aktivieren können sie die Webanwendungen auch via Pipe übergeben

Get-SPWebApplication | Enable-BlobCache

Um den IIS Blobcache zu deaktivieren und die Anpassungen an der Webanwendung zu entfernen gibt es den Disable-IISBlobCache Befehl.

Beispiel: Deaktivieren des IIS Blob Cache für die Webanwendung http://intranet

Disable-SPBlobCache –WebApplication http://intranet

1 Comments

  1. Pingback: SharePoint 2010: IIS Blob Cache komfortabel via PowerShell konfigurieren - SharePoint Blogs in German - Bamboo Nation

Leave a comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload the CAPTCHA.