Auch von meiner Seite ein herzliches Hallo vom SharePoint-Advents-Blog. Meinen ersten Artikel werde ich dem Thema Performance widmen und 10 Tipps geben, wie eine SharePoint-Umgebung in Sachen Performance optimiert werden kann.

1. Datenbank- vom Nutzer-Traffic separieren
SharePoint kommuniziert unwahrscheinlich viel mit den Datenbanken im Hintergrund. Es werden nicht nur alle Inhalte und Einstellung einer Website in der Inhalts- bzw. Konfigurationsdatenbank gespeichert, auch Anwendungen wie etwa die Suche- oder die Profildienste provozieren eine extrem hohe Datenbanklast. Um  einen optimalen Durchsatz von den Frontend- oder Anwendungsservern zum SQL Server zu erzielen, empfiehlt es sich, netzwerkseitig diese Kommunikation vom Nutzer-Traffic zu trennen.

2. SQL-Parameter einstellen
SQL-Profis wissen, dass die Datenbank-Engine zahlreiche Möglichkeiten liefert, die Performance der Datenbank selbst zu optimieren. Da auch SharePoint auf den SQL-Server zurückgreift, sollte auch diese Ebene betrachtet werden. Erster Schritt ist die physikalische Trennung der SharePoint-Datenbankdateien von anderen Datenbanken sowie der Temp-DB. Auch die Log-Files sollten auf einer separaten Platte abgespeichert werden. Weiterhin ist es lohnenswert die Temp-DB zu optimieren, wie in diesem Artikel beschrieben. Zusätzlich zu diesen beiden Schritten, kann die Größe der Inhaltsdatenbanken auf einen festen Wert, von zum Beispiel 80 Gigabyte gesetzt werden. Normalerweise erhöht der SQL Server die Datenbankdateien in kleinen Schritten. Diese Einstellung kann auf einen festen Wert von beispielsweise 10 Megabyte geändert werden.

3. Mehrere Inhaltsdatenbanken verwenden
SharePoint liefert die Möglichkeit, Site Collections in unterschiedlichen Inhaltsdatenbanken abzuspeichern. Von dieser Option sollte man unbedingt Gebrauch machen und einen Weg finden, die jeweiligen Websitesammlungen datenbankseitig voneinander zu trennen. SharePoint speichert dummer Weise die meisten Inhalte einer Website (Ankündigungen, Aufgaben oder Termine) in einer SQL-Tabelle ab. Mit einer immer höher werdenden Anzahl an Webseiten in einer Datenbank sinkt demensprechend die Performance der gesamten Plattform. Daher sollte man unbedingt mehrere Inhaltsdatenbanken planen.

4. SQL-Index-Daten defragmentieren
Der SQL Server verwaltet intern eine Reihe von Indizes zur Speicherung verschiedener Datenbanken. Da diese Dateien schnell fragmentiert werden können, empfiehlt es sich, die Daten im Rahmen der regelmäßigen Wartungsarbeiten zu defragmentieren.

5. Separation von Webanwendungen und Prozessen
Bestimmte SharePoint-Anwendungen erfordern auf den Servern unter Umständen einen hohen Ressourcenbedarf. Der bekanntestes dieser Dienste ist der Indizierungsprozess der Suche. Um auf den Frontend-Servern für die Benutzer spürbare Seiteneffekte zu vermeiden, sollten diese ressourcenintensiven Dienste auf einen separaten Application Server ausgelagert werden.

6. HTTP-Komprimierung verwenden
Die Internet Information Service (IIS) liefern die Möglichkeit, die vom IIS ausgelieferten HTTP-Pakete zu komprimieren. Auch die Datenpakete von SharePoint lassen sich über diese Technik verkleinern, daher sollte auch bei SharePoint-Farmen von der HTTP-Komprimierung Gebrauch gemacht werden.

7. CSS- und JavaScript-Optimierung
Besonders bei angepassten Webseiten für Intranets oder Internetauftritte empfiehlt es sich, einen guten Plan für die Umsetzung von Cascading Style Sheets oder JavaScripts zu haben. Lohnenswert ist es, die jeweiligen Daten zu minimieren, also Zeilenumbrüche bzw. Leerzeichen vor der Auslieferung zu entfernen. Zudem sollte die Anzahl der ausgelieferten CSS-Dateien möglichst gering gehalten werden. Bei Internetseiten sollten die CSS-Klassen des Edit-Modes zum Beispiel nicht im View-Mode heruntergeladen werden müssen. Bei JavaScripts liefert SharePoint 2010 die Möglichkeit, bestimmte Dateien oder Scripts nur dann zu laden, wenn Sie erforderlich sind (on demand).

8. Blob-Caching verwenden
Grafiken können durch das Blob-Caching auf den Frontend Servern für eine definierte Zeit zwischengespeichert werden. Die dadurch entstehende Ersparnis an Datenbank-Traffic kann unter Umständen sehr groß sein.

9. Output-Cache verwenden
SharePoint integriert eine Caching-Funktion mittels derer komplette Seite zwischengespeichert werden können. Das Output-Caching ist standardmäßig deaktiviert und sollte mindestens bei anonymen Internetseiten aktiviert werden.

10. Site Definitions und Features für Templates verwenden
Zusammen mit dem SharePoint Designer lassen sich Master- oder Content-Seiten unwahrscheinlich einfach anpassen und ggf. auch als Vorlage speichern. Problem dabei:  Nach der Anpassung werden die Master- bzw. ASPX-Dateien komplett in der Datenbank gespeichert und auch von dieser Stelle geparst. Und wie wir wissen, erfordert SharePoint ja schon genügen Datenbanklast. Aus diesem Grund sollten Websitevorlagen, Masterseiten oder Page Layouts nicht direkt mit dem SharePoint Designer angepasst werden, sondern stattdessen als Feature auf den Frontend-Server bereitgestellt werden. In Sachen Performance ist es auch von Vorteil JavaScript- oder CSS-Dateien im Layouts-Verzeichnis abzulegen. Die Prämisse sollte stets sein, den Traffic hin zur Datenbank möglichst gering zu halten.

So, das war mein erster Adventsbeitrag. Ich hoffe, dass der eine oder andere Tipp nützlich ist. Neben diesen Vorschlägen sollte man natürlich die Programmierebene nicht vernachlässigen und bei seinen individuellen Anwendungen auf eine vernünftige Performance achten. Wie die Performance einer SharePoint-Webseite gemessen werden kann, wir Christian morgen beschreiben.

2 Kommentare to “10 Tipps die SharePoint-Performance zu optimieren”

Erstelle Kommentare

You must be logged in to post a comment.

Hinweis zum Kommentar

Zum Kommentieren der Beiträge (und damit zur Teilnahme am Gewinnspiel) bitte auf die Zahl in der Bubble neben dem Titel des Blogeintrags klicken, dies öffnet das Kommentarformular!

Sponsored by

Subscribe

Über

Der SharePoint Advent

Ein Gemeinschaftsprojekt der deutschsprachigen SharePoint MVP's

Rubriken

Impressum

(c) 2011 SharePointCommunity