Microsoft Office Server and Services MVP, CTO & Partner at isolutions em isolutions AG
3 de May de 2013•0 gostou•3,607 visualizações
1 de 32
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
3 de May de 2013•0 gostou•3,607 visualizações
Baixar para ler offline
Denunciar
Tecnologia
Diese Slides zeigen, wie man Performanceprobleme von Microsoft SharePoint Server 2013 vorbeugt, analysiert und behebt. Die Slides sind im Rahmen einer Veranstalltung der SharePoint Community Mittelland Schweiz entstanden.
3. • Plattform für SharePoint Developer, IT
Professionals und Power User im Espace
Mittelland
• Offen für alle interessierten Personen
(Kunden und Microsoft Partner)
• Gratis
• Geplant 9 Events / Jahr
• Website: http://ww.sharepointmittelland.ch
• Yammer: http://bit.ly/134JEcq
• XING: http://bit.ly/Xxgjm1
• Kontakt: Roger Haueter, Patrick Mäschli und
David Schneider
3
SharePoint Community Mittelland
4. 4
Schneller SharePoint = Glückliche Benutzer
Weniger Beschwerden, bessere User Experience & höhere Nutzerzahlen
6. 6
Welche Faktoren beeinflussen die Performance?
Server
Memory, CPU und Disk
SQL Performance
IOPS auf SAN
Custom Code
Network
Network Infrastructure
Proxy Server
WAN Latency
Compression
Client
Browser Render Time
Page Optimization
Caching
Hardware, Driver, OS and
Browser Upgrades
7. • Web Front End Server
• ab 12 GB RAM, 4 Core CPU
• SQL Server
• ab 8 GB RAM, 4 Core CPU
• Überwachung mit Performance Monitor
• Average % Processor Time: < 60%
• Available Memory: > 50% free
• Disk Read/Write/Sec: < 15 ms
• Network Latency Output Queue Length: 0
7
Hardware Requirements
8. • Slow SQL = Slow SharePoint
• Kapazität des Speichers (in IOPS)
• pro GB Content DB: 0.75 - 1 IOPS
• pro GB tempdb, Search und Transaktionslog: 1.5 - 2 IOPS
• Total pro GB Content: 2 IOPS
• Storage Konfiguration
• Priorität bzgl. Performance TempDB, Transactional Logs, Search DB, Content DB
• Pro Core ein Data File (mind. für TempDB)
• NTFS File Allocation Unit Size >= 64KB
• Pre Allocate Content Databases
• Netzwerk Latency
• zwischen SharePoint Server und SQL Server < 1 ms
• Achtung bei Firewall zwischen Tiers
8
SQL Server
10. URL: Welche Sites (URLs) sind betroffen?
User: Welche Benutzer sind betroffen?
Ort: An welchem Standort treten die Probleme auf (LAN, Remote, etc.)?
Netzwerk: Wird der Traffic über einen Proxy geroutet?
Client: An welchen Clients treten die Probleme auf
(Workstation, VDI, BYOD, etc.)?
Time: Tritt das Problem nur sporadisch oder zu einer bestimmten
Uhrzeit auf?
Anwendung: Ist das Öffnen oder Speicher eines (Office-) Dokuments
langsam?
10
Eingrenzen
12. • Version von Browser, Office, Betriebssystem
• Non-Enterprise Client
• Non-VDI Client
• Anti Viren Software
• Scan der JS Dateien
• «Auto Detect Proxy Settings»
12
Client Einstellungen
13. • HTTP Reverse Proxy
• 304 Antworten: Client fragt Server, ob sich die
Ressourcen geändert haben
• BlobCache einschalten (max-age=«86400»)
• 401 Antworten: jeder Zugriff wird authentisiert
• URL in Local Intranet Zone
• Kerberos einschalten
• Zugriff auf urs.microsoft.com: Anti Phising Service
• URL in Local Intranet Zone
13
Debug mit Fiddler
15. • Crawling
• Backup
• Profile Import
• Timer Jobs
• Large List Operations
• Network Überlastung bzw. Fehlkonfiguration
• Schlechte Storage Konfiguration
• Warm Up Script
• Application Pool Reycle (Out of Memory)
Top Performance Killers
16. • Client
• Ressourcen (Bilder, CSS, JS)
• Max-Age und Expiries Flag
• BlobCache
• Ressourcen werden auf der Disk auf dem Front End Server zwischengespeichert
• Output Cache
• Gerenderte Page wird im RAM gespeichert nur für anonyme Zugriffe
• Object Cache
• Datenbankabfragen cachen
• Cache User konfigurieren!
16
Caching, Caching, Caching
17. Health Analyzer Rules
• Recycle der Application Pools wegen Memory Limits
• Datenbanken mit alten/fragmentierten Index Statistics
• Search mit fragmentierten Index
Slowest Page Report
• Central Administration -> Monitoring -> Reporting -> View Administrative Report
• Ggf. Timer Job «Microsoft SharePoint Foundation Usage Data Processing» aktivieren
• Eingrenzen nach Web App, Web Front End Server oder Page
HTTP Request Throttling
• Job checkt CPU, Memory, Request Queue. Bei schlechten Werten, werden Requests
abgebrochen
17
Central Administration
18. • Teil des SharePoint 2010 Administrative Toolkit
• Generiert Reports über
• Kapazität von CPU, RAM und SQL Server
• Performance
• Verfügbarkeit
• Usage
• Reports können Customized werden
18
SharePoint Diagnostic Studio
19. • Meldungen im Event Log
• ULS nach nach grossen Werten für «Execution
Time» durchsuchen
• Ggf. auch auf Application Tier
19
Logs
21. • Für viele Probleme sind Developer verantwortlich
• SPWeb oder SPSite werden nicht disposed
• SPDisposeCheck
• Locking Issues, Memory Leaks, etc.
• werden bei Load Tests sichtbar
• Cross Site Rollups und Content Query Web Parts
• durch Content by Search Web Part ersetzen
• Dynamische Navigation
• SharePoint ist kein RDBMS für grosse Datenmengen
• SharePoint 2013 App Model entlastet Server
• SharePoint Bounderies beachten
• Large datebase, large site collection, large list
21
Code
22. • Informationen zum aktuellen Request
• Stack Trace
• SQL Queries
• ULS
• Ein & Ausschalten via PowerShell für die
gesamte Farm
22
Developer Dashboard
23. • Ressourcen zusammenfassen
• Minify
• Bilder optimieren
• Style Sheet oben, Script unten referenzieren
• Minimal Download Strategy
• OOTB Team Sites
• Nur Änderungen zwischen zwei Pages werden heruntergeladen
• Bessere Client Rendering Performance
23
Custom Design
24. • Vor Go Live
• Auf produktiven Plattform
• Erwartete Benutzermenge simulieren
• Ziel festlegen (z.B. 100 Benutzer, Antwortszeit < 1 Sekunde)
• Tools
• Visual Studio Load Testing Kit
• WAPT
• Mögliche Erkenntnisse
• Memory Leaks
• CPU intensive Web Parts
• Locking Issues (Deadlocks)
24
Load Tests
25. Think out of the box
• Fehlerhaftes Netzwerkkabel zwischen Core
Switches führten zu Paket-loss zwischen
SharePoint und SQL Server.
• Alter VMWare Treiber für Netzwerkkarte hat fast
alles RAM der SharePoint Server beansprucht.
• Ohne Reverse Lookup Zone dauerte das Öffnen
eines PDFs 15 Sekunden.
26. Performance Cheat Sheet
Alle Benutzer
betroffen?
Berechtigungen auf
Draft Elemente
(Master Page, etc)
Alle Standorte
betroffen?
Bestimmter
Zeitpunk
Nur Morgens:
Warm Up Script
implementieren
Fiddler zeigt
viele Requests
BlobCache
konfigurieren
Local Intranet Zone
URL
Ja
Client
Deaktivieren von
Anti Viren Software
Browser,
Betriebssystem und
Anwendung
aktualisieren
Group Policies
deaktivieren
Developer
Dashboard
Code Review
durchführen
Custom Code
Neue Web App
ohne Custom Code
erstellen
Server
Performance
CPU und RAM
(PerfMon) auf
SharePoint Server
Latenz zw. SP und
SQL Server (PING)
CPU, RAMund SAN
auf SQL Server
Cross Siteund Site
Collection Abfragen
durch Search
ersetzen
Langsame Leitung
oder fehlerhafte
Netzwerk
Konfiguration
Proxy oder Firewall
WAN Accelerator
deployen
Group Policies
überprüfen
Regelmässigkeit der
langsamen Zugriffe
herausfinden
ULS und Eventlog,
Timer Job, Search
Crawl, Zertifikate
Viele Benutzer
Memory Leak oder
Locking Issue
Ja
Mit Blank
Installation (keine
Enterprise Client,
kein VDI) testen
Kerberos an Stelle
von NTLM
Closed Web Parts
Slowest Pages
Report
Pageoptimieren
27. • PerfMon
• Fiddler2
• http://fiddler2.com/
• Add Ons für Fiddler
• http://fiddler2.com/add-ons
• WireShark
• http://www.wireshark.org/
• Sysinternals Process Monitor
• http://technet.microsoft.com/de-ch/sysinternals/bb896645.aspx
27
Tools
28. • Microsoft TechNet Capacity management and sizing for SharePoint Server 2013
• http://technet.microsoft.com/en-us/library/cc261700.aspx
• SQL Server 2012 Best Pratices für SharePoint Server 2013
• http://www.techtask.com/news/sql-server-2012-best-practices-fur-sharepoint-server-
2013/
• SharePoint 2010 Administrative Toolkit (SPDiag)
• http://technet.microsoft.com/en-us/library/cc508851
28
Weitere Informationen
31. David Schneider, Head of Development
Kontakt
E-Mail david@sharepoint.ch
Blog http://blog.sharepoint.ch
Telefon 031 560 88 72
Notas do Editor
Seit 7 Jahren SP Erfahrung
Latenz: (Wartezeit) Zeit zwischen Klick und bis das letzte Byte übertragen istRequest empfangen und verarbeitenResponse übertragenRendern in der Client Anwendung Durchsatz: Anzahl gleichzeitige RequestsAnzahl BenutzerUnpassende HardwareCustom Pages nicht optimiertDatenvolumen: Datenmenge, welche das System verkraftet ohne Verschlechterung der Latenz oder des DurchsatzesVerteilung der DatenbankenLUN, Remote BlobZuverlässigkeit: Latenz und Durchsatz über die ZeitRessourcenhungrige Maintenance Tasks zu Off Peak Zeiten
Disksize bis 4 TB wenn 2 IOPS garantiertPerformance der DisksTempDB (Schreiben)Transactional Logs (Schreiben)Search DB (Lesen/Schreiben)Content DB (Lesen)
Anti
BlobCachehttp://sp2013-dsc.is-lab.local/sites/public/Pages/default.aspxmax-age="86400"IE Zone
Health AnalyzerSlowest Page
Demo
Zeigt das Developer Dashboard auffällige Daten an? Werden z.B. viele Datenbank Zugriffe gemacht oder dauern diese sehr lange?LongRunningWebParthttp://sp2013-dsc.is-lab.local/SitePages/LongRunningWebPart.aspxClosed Web Parthttp://sp2013-dsc.is-lab.local/SitePages/ClosedWebPart.aspxContent Query Web Parthttp://sp2013-dsc.is-lab.local/SitePages/Aggregate%20Tasks.aspx