Optimizing Sharepoint Performance: Critical Steps For Large Enterprises

Assessing Current Performance Bottlenecks

Identifying areas of poor page load times or high utilization of computing resources is critical for understanding performance bottlenecks in a SharePoint environment. SharePoint provides built-in performance monitoring tools such as usage reports and database analysis to help diagnose issues.

Analyzing user workflows and pain points through interviews and monitoring can uncover performance problems impacting user experience. Common pain points include slow page loads, throttling during peak usage times, and timeouts when accessing large libraries.

Identifying Slow Page Loads

Slow page load times can indicate bottlenecks at the database query level or in rendering complex pages. Tools like the SharePoint developer dashboard can measure page load times for identifying particularly slow pages.

Long load times for simple pages may indicate database query performance issues. Complex pages with many web parts can load slowly due to browser limitations in rendering the page.

Detecting High Resource Utilization

SharePoint environments may experience throttling during peak usage times as resources like CPU and memory get constrained. Monitoring utilization levels can identify when and which resources are throttling.

High CPU usage indicates potential for performance issues like page load slowdowns and timeout errors. Memory pressure can cause slower performance and crashes. Storage bottlenecks present as slow access times and timeouts.

Understanding User Workflows

User interviews and surveys can uncover workflows and activities that perform poorly or have high latency due to underlying performance issues.

Common pain points include timeouts when uploading or syncing large files to SharePoint libraries, poor performance accessing metadata-heavy libraries, and concurrency issues when multiple users edit items simultaneously.

Optimizing Database Performance

As SharePoint’s underlying data store, the SQL Server content databases power much of the performance in a SharePoint environment. Optimization techniques like indexing, partitioning, and space management are key to fast database performance.

Indexing for Faster Queries

Indexes make query performance faster by quickly looking up data without scanning entire tables. Careful indexing, based on usage patterns and query analysis, can dramatically improve database speed.

Columns frequently used in joins and sorts, like unique identifiers and modified dates, are good index candidates. Full-text search indexes also improve search speed for textual content.

Partitioning Databases

Database partitioning divides database objects across multiple files enabling limitless, logical database growth. This provides performance benefits through parallelization and better resource utilization.

Partition large tables like audit logs, metrics, and inventory data to improve query and storage performance. Align partitioning strategy to usage patterns for optimal speed.

Managing Database File Growth

Uncontrolled content database growth can lead to increased storage costs and slower performance. Setting logical size limits, moving unused content to archives, and purging obsolete data controls space usage.

Schedule regular reindexing, statistics updates, and consistency checks to maintain fast performance as databases scale. Keep pace with maintenance as storage size and usage increase.

Improving Page Load Times

Optimizing SharePoint page layout, appearance, and output can provide significant page load time improvements. Caching rendered output, compressing responses, and structuring optimal page layout all lead to faster loads.

Enabling Output Caching

Output caching stores rendered HTML output, avoiding CPU cycles spent rerendering identical content. Enable output caching in SharePoint web.config for page layouts, navigation, content types, and search results.

Balance cache duration against content freshness needs. Clear cache periodically or trigger cache flushing on content updates via the SharePoint object cache API.

Compressing Page Output

Reducing page payload size speeds up transfer time over the network. Enable GZIP compression in IIS for SharePoint pages and ASP.NET apps. Configure Middle Tier Compression on SharePoint app servers.

Offload compression tasks to reverse proxies and load balancers when possible. Compress JavaScript, CSS and image assets which provide big bandwidth reduction.

Optimizing Page Structure

Simpler page layouts with fewer elements render faster in the browser. Choose lean web parts optimized for speed over heavier content types.

Remove unnecessary custom branding files, page animations, and JavaScript. Ensure web parts load progressively rather than blocking page render. Validate markup for errors.

Scaling the SharePoint Farm

Scaling out SharePoint roles into a larger farm improves performance capacity for larger workloads. Adding servers provides more resources for improved load balancing and redundancy.

Balancing Loads on Web Servers

Load balance incoming requests across a pool of web front end servers to eliminate bottlenecks. SharePoint’s built-in round robin load balancer evenly distributes traffic.

Alternatively, use an intelligent third party load balancer with session affinity for improved caching capability during scale out. Secure load balancer via private network.

Scaling App Servers and Cache

Scale the application server tier horizontally to prevent resource starvation during usage spikes. Align cache scaling to prevent memory bottlenecks.

Plan scale out during usage lows, testing extensively before production rollout. Configure new app servers identically to existing ones taking server affinity into account.

Leveraging Cloud Capabilities

Cloud-hosted SharePoint enables instant and unlimited, compute scale to handle usage growth and variability. Auto-scale rules add capacity based on CPU, memory, or throughput metrics.

Plan for scale up and down to control costs, while maintaining performance SLAs. Monitor cloud spend regularly as user growth changes usage.

Monitoring Performance Continuously

Continuous performance monitoring provides visibility into usage trends and emerging issues before they impact users. Combine baseline metrics, alerts, and queries to track key indicators.

Setting Up Baseline Metrics

Define expected thresholds for resource utilization, database growth, page load times, crawl health, and site traffic as baselines for your environment and content.

Reset baseline metrics after major upgrades or topology changes which significantly alter performance profiles. Update to match growth trends.

Configuring Alerts

Configure SharePoint’s usage data alerts for notification when resource utilization or usage counters exceed defined limits. Alert on warning signs like cache flushes and crawl health.

Integrate with monitoring tools to trigger email, SMS or chat alerts on key metrics. Ensure alerts provide useful troubleshooting context for the issue.

Reviewing Trends Regularly

Analyze usage metrics trends in tools like Power BI to identify seasonal usage patterns, capacity cliffs from user growths, and spikes indicating potential issues.

Schedule capacity planning reviews to align scaling initiatives to business needs. Watch for divergence from baseline trends signaling changing usage profiles.

Leave a Reply

Your email address will not be published. Required fields are marked *