Troubleshooting and tuning Sharepoint deployments is often challenging, because transactions for this popular off-the-shelf collaboration software span multiple tiers. Moreover, a single web request may generate multiple database requests, further complicating the problem of pinpointing the source of latency.
Luckily, there is a built-in GUID that tags all web-to-database transactions with a unique identifier. Using the power of AI triggers, ExtraHop can utilize the "recognize-and-trace" approach to calculate latency for each transaction and attribute it to either the web or the database tier.
The following diagram represents a typical Sharepoint setup and transaction flow:
ExtraHop analysis results in the following metrics and views, which easily answer such questions as:
- Where is the overall latency, web or database tier?
- Where is the latency for a specific URI, web or database tier?
- If the database tier is slow, is it due to one slow request or many serialized requests? & Within each tier, is it the network transfer or server processing that is causing latency?
Latency in the HTTP and DB tiers of the Sharepoint Deployment
- HTTP Component: Total time in the Sharepoint web tier
- DB Component: Total time in the Sharepoint database tier
- HTTP Component (URI detail): Web Request + Web Response for a specific URI
- DB Component (URI detail): Sum of all DB Requests and DB Responses associated with a specific Web Request URI, based on the Sharepoint GUID.
Ratio of DB requests to HTTP Requests (fan-out factor)
Specific DB Methods called at the database tier
Response Time Breakdown at every tier
- ExtraHop firmware version 3.8.16388 and newer.
- To date, this analysis has been tested with Sharepoint 2013 and Sharepoint 2010.
- Visibility into web/app and database Sharepoint traffic. Common pitfalls include:
- Not specifying custom ports for Sharepoint database traffic, if applicable
- Not configuring the span to send both database and web/app Sharepoint traffic to ExtraHop
- If applying the bundle using the ECM, not configuring the ECM to see all the nodes that comprise the web/app and database traffic
See this video for a Sharepoint installation and troubleshooting example.
- Download the bundle
- Upload the bundle into the ExtraHop appliance using Settings >> Bundles >> Upload >> Upload From File
- Apply the resulting ExtraHop Sharepoint Bundle in the bundle detail page
- Triggers and pages are automatically assigned to all. To optimize this you can:
- Assign the Sharepoint - HTTP Response trigger to the Sharepoint web/app server
- Assign the Sharepoint - DB Request and Sharepoint - DB Response triggers to the Sharepoint database server (Note: Discovery Edition users should simply make sure triggers are Enabled as they are automatically assigned to all devices in that version.)
- Assign the Sharepoint custom page to the Sharepoint application, once it appears in Applications