Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint.

Similar presentations


Presentation on theme: "Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint."— Presentation transcript:

1 Ideas to Improve SharePoint Usage 4

2 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

3 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

4 Check #1: End User Health #1: Geo Location #2: User Environment #3: Errors

5 Check #2: Site Health #1: Load #2: Failures #3: Performance #4: Infrastructure #5: End User Index

6 Check #3: System Host Health #1: CPU & Memory #3: Process Check: Need to RE-DEPLOY? #2: I/O: Static & Logs

7 Check #4: IIS Health #1: Threads #2: Throughput #3: Page Size

8 Check #5: AppPool Health #1: Memory #2: Garbage Collection #3: Worker Threads

9 Check #6: SQL & Service Health #2: Connectivity Issues #1: Excessive SQL Roundtrips

10 Check #7: Web Parts #2: Deployment #3: Bad Coding : 211 SQL! #1: Performance

11 Avoid common Deployment Mistakes CONNECTIVITY, MISSING FILES, PERMISSION, …

12 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?

13 Any Deployment Mistakes? HTTP 5xx, 4xx? Which errors are thrown by which page ? Which Errors impact how many users?

14 Any Bad WebPart? WebParts that can’t be loaded! Here is the page that uses this WebPart

15 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 This is the page that tries to connect to that backend service! Root Cause : Configuration Issue

16 Authentication Issues? How many users have authentication issues? Which pages are users trying to access?

17 User Permission Problems? #1: Permission Issue Detected! #2: Related to SocialNavigationControl #3: Here is the problematic page

18 Missing Lists? List not found Exception! Here is the page that references this list!

19 Missing Columns? Somebody deleted a column? Here is the page that shows that column!

20 Bad Filter Settings? Bad filter settings result in Exceptions Here is the page that uses that bad filter!

21 Analyze SharePoint usage WHO IS USING WHAT, HOW FROM WHERE?

22 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? How fast/slow are these pages for them? Maybe impacted by bad network connectivity?

23 Which Lists/Views are Used? How often used? How fast/slow? Time spent in SQL Server? Same information shown per List High Failure Rate?

24 Which pages are slow HOW TO IDENTIFY THEM?

25 What are the top slowest end user pages? How Fast/Slow for the end user? How much of that is Server Time?

26 What makes them slow? How do these pages load? Lots of JavaScript that loads slow? Maybe cache on a Proxy/CDN?

27 Reasons for slow pages CLIENT AND SERVER SIDE

28 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, …)

29 Overloaded Pages 2.6MB for Home Page ! Don’t overload with too much information!

30 Database Impact: too many requests 211! SQLs per Page Request

31 Database Impact: Same SQL Same SQL called many times per page!

32 Database Impact: Whom to blame?  Overloaded Pages with too many Web Parts  Badly implemented custom web parts  3 rd party WebParts or Controls

33 Bad Coding of Custom Web Parts - #1 ALL List Items are retrieved from the Database DO NOT int noOfItems = SPContext.Current.List.Items.Count; Item Count is kept redundant in the AllUserData table and also kept in memory DO int noOfItems = SPContext.Current.List.ItemCount;

34 Bad Coding of Custom Web Parts - #2 DO NOT for (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

35 Good Coding of Custom Web Parts - #2 DO SPListItemCollection items = SPContext.Current.List.Items; foreach (SPListItem listItem in items) { // do something... } Only first access to the collection queries the data

36 Telerik Grid Control Going Wild #1: Data Driven Problem Depending on the user input on that request we see up to 493! SQL Calls per request Root Cause: Every Grid Cell executed a new SQL #1: Data Driven Problem Depending on the user input on that request we see up to 493! SQL Calls per request Root Cause: Every Grid Cell executed a new SQL #2: Statements not prepared None of these executions has been prepared #2: Statements not prepared None of these executions has been prepared

37 High Garbage Collection Memory Heavy Apps result in High GC that impacts Performance

38 High GC Result of High Memory Usage! Long Running GCs! Analyze Memory Patterns

39 High GC: Performance Heap Analysis Which classes stay on the heap? Which have the biggest impact? Who is keeping them in memory?

40 Real life Troubleshooting THE JOURNEY OF A FRUSTRATED SHAREPOINT USER

41 Frustrated User report bad Response Times Frustrated User Slow Page Load caused by Browser JS Time Slow Page Load caused by Server-Side Processing

42 Really slow page 6.8s to deliver Default.aspx page Involved Web Parts Most of the Time spent in waiting

43 WebPart uses multiple parallel Threads Async Threads are busy with I/O

44 First Remote Call is Very Slow Web Service call by ContentEditorWebPart HttpWebRequests uses ServicePoint internally First Web Service Requests takes 5.8s to return

45 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

46 Solution: Change Defaults http://apmblog.compuware.com/2013/03/12/net -and-sharepoint-performance-dont-let-default- settings-ruin-your-end-user-experience/

47 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 : 3 rd Party & Custom. Bad Coding and Bad Deployments lead to crashes

48 More Links for You  Tools: http://dynatrace.com/en/sharepoint http://dynatrace.com/en/sharepoint  More Stories: http://blog.dynatrace.com/ http://blog.dynatrace.com/  YouTube Tutorials: http://bit.ly/dttutorials http://bit.ly/dttutorials

49 Thank You!


Download ppt "Ideas to Improve SharePoint Usage 4. What are these 4 Ideas? 1. 7 Steps to check SharePoint Health 2. Avoid common Deployment Mistakes 3. Analyze SharePoint."

Similar presentations


Ads by Google