hsps 2015 - sharepoint performance santiy checks
TRANSCRIPT
1
Welcome to SharePoint Saturday Houston
• Please turn off all electronic devices or set them to vibrate
• If you must take a phone call, please do so in the hall so as not to disturb others
• Special thanks to our Title Sponsor, ProSymmetry
Thank you for being a part of the 5th Annual SharePoint Saturday for the greater Houston area!
3
Information
• Speaker presentation slides should be available from the SPSHOU website within a week or so
• The Houston SharePoint User Group will be having it’s next meeting Wednesday April 15th. Please join us at www.h-spug.org
6
What are these 4 Ideas?
1. 7 Steps to check SharePoint Health
2. Avoid common Deployment Mistakes
3. Analyze SharePoint Usage
4. Which Pages are Slow and Why?
Bonus: Real Life Troubleshooting Example
7
7 Step SharePoint Health Check
#1: End User Health #3: System Health#2: Site Health
#4: IIS Health #5: AppPool Health #6: SQL & Service Health
#7: Web Parts
10
Check #3: System Host Health
#1: CPU & Memory#3: Process Check: Need to
RE-DEPLOY?#2: I/O: Static & Logs
16
Who’s talking with whom?
How many Web Sites are actually running?
How many requests make it to SharePoint’s AppPool?
Do we call any external services
Is our SQL Server overloaded?
17
Any Deployment Mistakes? HTTP 5xx, 4xx?
Which errors are thrown by which page?
Which Errors impact how many users?
19
Connectivity Issues between Services?Watch out for Connection
Exceptions!
This is the page that tries to connect to
that backend service!Root Cause:
Configuration Issue
20
Authentication Issues?
How many users have authentication issues?
Which pages are users trying to access?
21
User Permission Problems?#1: Permission Issue Detected!
#2: Related to SocialNavigationControl
#3: Here is the problematic page
24
Bad Filter Settings?
Bad filter settings result in Exceptions
Here is the page that uses that bad filter!
26
How are people navigating through SharePoint?
Which browsers do people use?
Where are they from? Which Office?
How do they navigate through the site?
How fast/slow are these pages for
them?Maybe impacted by
bad network connectivity?
27
Which Lists/Views are Used?How often used? How fast/slow? Time spent in SQL Server?
Same information interesting per View
High Failure Rate?
30
What are the top slowest end user pages?How Fast/Slow for
the end user?How much of that
is Server Time?
31
What makes them slow?How do these pages load?
Lots of JavaScript that loads slow? Maybe
cache on a Proxy/CDN?
33
Many reasons for bad performance
• Frontend– Overloaded and complex Pages
– Too much JavaScript slows down older browsers
– Bad content caching
• Backend– Bad/Too Much Database Access
– Bad Coding of custom code
– Overhead due to configuration issues and resulting logs/exceptions
– High Memory Consumption
– Wrong Deployment Configurations (e.g: worker threads, …)
37
Database Impact: Whom to blame?
• Overloaded Pages with too many Web Parts
• Badly implemented custom web parts
• 3rd party WebParts or Controls
38
Bad Coding of Custom Web Parts - #1
ALL List Items are retrieved from the Database
DO NOTint noOfItems = SPContext.Current.List.Items.Count;
Item Count is kept redundant in the AllUserData table and also kept in memory
DOint noOfItems = SPContext.Current.List.ItemCount;
39
Bad Coding of Custom Web Parts - #2DO NOTfor (int itemIx=0;itemIx< SPContext.Current.List.Items.Count;itemIx++) {
SPListItem listItem = SPContext.Current.List.Items[itemIx];
// do something ...
}
Every access to Count and Items Property queries the whole SharePoint list
We end up with 202 SQL Executions with a total exec time of > 1s
40
Good Coding of Custom Web Parts - #2DOSPListItemCollection items = SPContext.Current.List.Items;
foreach (SPListItem listItem in items) {
// do something ...
}
Only first access to the collection queries the data
41
Telerik Grid Control Going Wild
#1: Data Driven ProblemDepending on the user input on that request we see up to
493! SQL Calls per requestRoot Cause: Every Grid Cell
executed a new SQL
#2: Statements not preparedNone of these executions has
been prepared
44
High GC: Performance Heap AnalysisWhich classes stay
on the heap?Which have the biggest impact?
Who is keeping them in memory?
46
Frustrated User report bad Response Times
Frustrated User
Slow Page Load caused by Browser JS Time
Slow Page Load caused by Server-Side Processing
47
Really slow page6.8s to deliver Default.aspx page
Involved Web Parts
Most of the Time spentIn waiting
49
First Remote Call is Very Slow
Web Service call by ContentEditorWebPart
HttpWebRequests uses ServicePoint internally
First Web Serivce Requests takes 5.8s to return
50
Thread Limit lets all other Threads wait!
We have 10 parallel calls in our background threads
The other background threads spend their time“waiting” in the ServicePoint
52
Key Points to Take Home
#1: End User Health: Happy or Frustrated? Desktop or Mobile?
#3: System Health: CPU, Memory, Process Distribution, …
#2: Site Health: Any Errors? Any Performance Issues?
#4: IIS Health: Bandwidth? Threads? HTTP 4xx, 5xx?
#5: AppPool Health: Memory, CPU, GC, Exceptions, Logs …
#6: SQL & Service Health: # Roundtrips, Data Amount, CPU, Memory, I/O
#7: Web Parts: 3rd Party & Custom. Bad Coding and Bad Deployments lead to crashes
53
More Links for You
• Tools: http://dynatrace.com/en/sharepoint
• More Stories: http://blog.dynatrace.com/
• YouTube Tutorials: http://bit.ly/dttutorials
• Follow Me: @grabnerandi
• Contact Me: [email protected]
54
Please Leave Feedback During Q&A
Please submit feedback by going to http://whatsyouranswer.com?S201547151810
or by scanning the QR code to the right