Ihr SharePoint ist langsam? - So verbessern Sie die Performance

Und plötzlich sind sie da, die Beschwerden, welche kein Systemverantwortlicher lesen oder hören möchte:

  • der SharePoint Server ist langsam
  • die Performance ist schlecht
  • unter solchen Bedingungen kann ich nicht arbeiten

Konkreter wird es in den meisten Fällen nicht, es kommt eher noch der Hinweis "es war doch vorher auch nicht schnell" :-/

Bei Performance-Problemen hat der Benutzer selten eine Fehlermeldung, sondern immer sein persönliches Gefühl. In den wenigsten Fällen liegt eine Messung vor wie die Ladezeiten der Seite vor den ersten Meldungen der Benutzern, bei der Inbetriebnahme des SharePoint Servers oder nach einem Update auf das aktuelle CU war. Auch von dem Hersteller bekommt man keine verlässlichen Aussagen wie die Ladezeiten der Seiten sein sollten oder in welchem Rahmen sich diese bewegen können.

In unserem letzten Fall (hier den Verweis auf Bugs als Performance-Bremse) hatten wir genau diese Voraussetzungen. Wir hatten keine Werte ob sich die Performance schlagartig verschlechter hat oder ob es eher ein schleichender Prozess war.

Wie wir trotzdem die Ursache für die Verschlechterung der Ladezeiten gefunden haben möchte ich hier kurz beschreiben.

Wie sollten Sie beginnen?

Performance analysieren

Im ersten Schritt gilt es Daten zu sammeln. Die Daten sollen helfen Nachzuweisen, wie der aktuelle Stand ist und welche Verbesserungen bei den Ladezeiten mit den Konfigurationen erzielt wurden.

Bei dem kompletten Verlauf der Analyse sollte immer der neutrale Blick auf die Anwendung bewahrt werden.

Folgende Daten sollten dokumentiert werden:

  • Ladezeiten im Browser
  • Standort der Benutzer der Anwendung 
    • besteht ein globales oder regionales Problem?
    • betrifft es vielleicht auch nur Mitarbeiter, welche sich im Außendienst befinden?
  • Schreib- und Lesegeschwindigkeit auf den Festplatten der Server
  • Netzwerkgeschwindigkeit zwischen den Servern (SharePoint <-> SharePoint und SQL Server <-> SharePoint Server)
  • Auslastung der Hardwareressourcen auf alle Servern (CPU, RAM, Festplattenspeicher)
  • Versionen der Betriebssysteme und des SharePoint Servers

Zusätzlich sollte im SharePoint das Developer Dashboard aktiviert werden.

$svc = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
$dds = $svc.DeveloperDashboardSettings
$dds.DisplayLevel = "On"
$dds.Update()

Daten auswerten

Wenn alle Daten gesammelt sind, müssen diese natürlich ausgewertet werden. Dabei ist es im ersten Schritt wichtig, ob die Werte mit den Anforderungen von Microsoft übereinstimmen. 

Einen genauer Blick auf das Developer Dashboard lohnt sich in diesem Zusammenhang. Microsoft bietet uns hier ein Hilfsmittel, mit welchen wir sehr detailliert die Abläufe bei einer Anfrage an den SharePoint sehen.

Auf der Übersichtsseite erhalten wir einen Überblick über grundlegende Daten der Abfragen. Interessant ist hier die SQL-Gesamtdauer, welche ohne dieses Tool schwer zu ermitteln ist:

Schritte zur Performance-Verbesserung

Welche Möglichkeiten haben Sie?

Nachdem die Daten gesammelt und auch ausgewertet wurden, ergibt sich Ihnen ein Bild, wo ein Bottleneck sein könnte. Im nächsten Schritt sollten dann die Maßnahmen für die Behebung ergriffen werden. Je nach Fehler kann dies unterschiedlich ausfallen.

Unsere Erfahrung und Empfehlung ist es, mit den Grundlagen zu beginnen:

Kontrolle und Auslastung der Hardwareressourcen.

Dies bedeutet es sollte die Datenbankgröße kontrolliert werden und diese ggf. auf mehrere aufgeteilt werden:

Update auf ein aktuelles CU des SharePoint Servers. Die neusten CUs sind im Blog von Microsoft gut zu finden:

Sind die Grundkonfigurationen kontrolliert und angepasst, dann können Sie sich an die tiefer gehende Konfiguration wagen. Hier gibt es von Microsoft und einigen Kollegen eine Zusammenfassung einiger Schritte:

Bugs als Performance-Bremse

Nicht immer sind es fehlerhafte Konfigurationen im SharePoint oder mangelnde Hardwareressourcen auf den virtuellen Servern, sondern auch Bugs in der darunterliegend Software können eine Ursache für Performance-Probleme sein.

In einem unserer Fälle sind wir bei der Analyse einer SharePoint Server Farm auf einen Bug in der VMWare Software gestoßen. Dieser Bug hatte zur Folge, dass Verbindungen zum SQL Server behindert wurden. Die Auswirkungen waren Ladezeiten von > 5 Sekunden.

Hier ein Auszug aus dem KB Artikel von VMWare:

This issue is observed under these conditions:

  • The guest operating system is Windows Server 2012, Windows 8 or later.
  • The virtual machine is on hardware version 11/ ESXi 6.0 compatibility.
  • The virtual NIC is vmxnet3 and the driver version is 1.6.6.0.
  • The Receive Side Coalescing (RSC) feature is enabled globally and on the vmxnet3 adapter.
  • This issue is more prevalent when: 
    • Running Microsoft SQL/TDS based workloads
    • Using Jumbo Frames
    • The client and server are on two different hosts

Die Lösung ist in diesem Fall simpel und ohne einen Einfluss auf den Betrieb auszuführen. Das Receive Segment Coalescing (RSC) musste deaktiviert werden.

Disable-NetAdapterRsc *

Nachdem die Funktion auf allen Windows Servern 2012 deaktiviert war, konnten die Antwortzeiten auf < 1.5 Sekunden verbessert werden.

Das Ergebnis: Ein Vorher-Nachher-Vergleich

Am Ende jeder Analyse und Verbesserung steht natürlich ein Ergebnis, welches festgehalten werden muss. Nutzen Sie die Chance alle Daten zentral zu dokumentieren. Somit haben Sie die Möglichkeit bei den nächsten Meldungen, die kein Systemverantwortlicher hören will ;-), direkt zu entscheiden, ob sich etwas verschlechtert hat und in welchen Bereichen.

Ein wichtiger Punkt wird zum Abschluss einer erfolgreichen Behebung solcher Probleme immer vergessen: Verbreiten Sie die positive Nachricht und genießen Sie die Komplimente der Mitarbeiter und Kollegen 

Mein Fazit

Performance und langsame Anwendungen sind ein heikles Thema, welches von jedem Administrator oder Systemverantwortlichen ernst genommen werden sollte. Reagiert die Anwendung im Unternehmen nicht so schnell wie Anwendungen von Google, Facebook oder Twitter dann verliert man die Nutzer. Wichtig ist dabei immer der Blick auf das Wesentliche und auf feste Zahlen und Messungen. Verlassen Sie sich nicht nur auf Aussagen und das Gefühl, halten Sie die Daten fest, um am Ende den Beweis zu haben, wie schnell und gut administriert die Anwendung ist.

Sie benötigen Unterstützung? - Unser Health-Check

Mit unserem Health-Check führen wir als SharePoint-Experte eine umfassende und detaillierte Prüfung Ihrer SharePoint-Umgebung durch. Wir unterstützen Sie dabei Performance-Probleme zu identifizieren und Verbesserungspotentiale aufzudecken - auch in Verbindung mit Office 365 in hybriden Infrastrukturen.

Martin Alter
23. September 2016 

Sie haben Fragen oder möchten sich von uns beraten lassen?

Gerne stehen wir für Ihre Fragen zur Verfügung. Nutzen Sie einfach unser Kontaktformular.