10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to...

13
10 SharePoint Best Practices to Improve Performance © 2015 Dynatrace 10 SharePoint Best Practices to Improve Performance SharePoint experts share their best practices from usability to configuration and performance management

Transcript of 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to...

Page 1: 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to mprove Performance 2015 ynatrace 3 ntrouction The first implementation may have been

SHAREPOINT

BESTPRACTIC

ES

SHAREPOINT

BESTPRACTIC

ES

10 SharePoint Best Practices to Improve Performance© 2015 Dynatrace

10 SharePoint Best Practices to Improve PerformanceSharePoint experts share their best practices from usability to configuration and performance management

Page 2: 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to mprove Performance 2015 ynatrace 3 ntrouction The first implementation may have been

10 SharePoint Best Practices to Improve Performance© 2015 Dynatrace

2

Table of contents

Best Practice

1-2Wendy

NealUsability

Page 4

Best Practice

3-5Jason

HimmelsteinPerformance

Page 6

Best Practice

6Dustin WilliardOptimization

Page 7

Best Practice

7Martin Etmajer

Logging

Page 8

Best Practice

8-10Andreas GrabnerPerformance

Page 9

Page 3: 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to mprove Performance 2015 ynatrace 3 ntrouction The first implementation may have been

10 SharePoint Best Practices to Improve Performance© 2015 Dynatrace

3

Introduction

The first implementation may have been for a single workgroup but now everyone wants to use it and the content it stores is ballooning exponentially.Unfortunately the features that make SharePoint seem easy to use out-of-the-box now, can actually create performance problems for your organization in the future if it is not configured correctly. Third-party applications running on SharePoint can bring valuable operational efficiency, however, when things go wrong, it can be difficult to understand exactly why. And if performance starts to slow, your users will get frustrated and go back to the old solution – hard drives and file servers. The number one barrier, in fact, to SharePoint user adoption is technical issues such as performance and complexity.1

In this eBook we have collected a series of best practices from SharePoint experts around the web to help you provide your users with a top performing application. Poor information architecture and back-end infrastructure design, too much reliance on default settings, the wrong logging strategy and inadequate planning for large unstructured content can all affect performance.

And, if you are planning to integrate any third-party applications with SharePoint (as half of IT decision-makers are doing or planning to do1), then managing performance will get that much more complex.

Read on to learn how the best practices shared here will help you improve the end-user experience of your SharePoint deployment.

SharePoint has a way of growing like a weed in an organization

Executive Summary

1. Forrester, Global SharePoint Usage Only Survey, August 2014

Back to table of contents

Page 4: 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to mprove Performance 2015 ynatrace 3 ntrouction The first implementation may have been

10 SharePoint Best Practices to Improve Performance© 2015 Dynatrace

4

Best Practices 1-2

1 2 3 4 5 6 7 8 9 10

#1 Observe end usersI spend a lot of time sharing usability tips for SharePoint. However, I think the most important best practice is to watch what your users are doing so you can understand their pain points.

You can get very formal by conducting usability tests, or go a simpler route by sitting with a couple of users to observe them using the site. You can even use a tool if you want to trace where most users go once they enter your site.

The bottom line is that you can arbitrarily implement a bunch of usability fixes; but if you don’t really understand what your users are trying to do or see, where their pain points lie, then you’re just taking a stab in the dark.

Check out my blog to learn more about SharePoint Usability.

GO?

“If you don’t really understand what your users are trying to do… then you’re just taking a stab in the dark.”

Wendy Neal

Senior SharePoint Consultant

McGladrey

Wendy Neal is a Senior SharePoint Consultant for

McGladrey and a founding partner and community

representative for SharePoint-Community.net. A regular

speaker at industry and user group events, she is also a

regular contributor for CMSWire.com and discusses all

things SharePoint (and sometimes bacon) on Twitter and her blog. Wendy’s focus is on

usability, collaboration, branding, governance, evangelism, user adoption, training, and

empowering power users to build their own solutions.

Back to table of contents

Wendy’s blog: wendy-neal.com • Twitter: @SharePointWendy

Page 5: 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to mprove Performance 2015 ynatrace 3 ntrouction The first implementation may have been

10 SharePoint Best Practices to Improve Performance© 2015 Dynatrace

5

#2 Train site owners to be webmastersI have a passion for web site usability in general, and over the years I’ve noticed that SharePoint isn’t always the most user-friendly platform, especially right out of the box.To address that, we need to teach our site owners how to be webmasters. Just some of the responsibilities of a webmaster include:

> designing the site

> setting up and maintaining the information architecture

> analyzing usage statistics and content facilitation

They need to understand their audience so they know what kind of content to put on the home page and how to lay it out to ensure maximum adoption and keep visitors returning to their site. If the site isn’t designed properly and the information architecture is poorly designed or nonexistent, you can pretty much guarantee the site won’t be very usable.

Check out my blog to learn more about SharePoint Usability.

“If the site isn’t designed properly… you can pretty much guarantee the site won’t be very usable.”

Best Practices 1-2

1 2 3 4 5 6 7 8 9 10

Back to table of contents

Wendy Neal

Senior SharePoint Consultant

McGladrey

Page 6: 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to mprove Performance 2015 ynatrace 3 ntrouction The first implementation may have been

10 SharePoint Best Practices to Improve Performance© 2015 Dynatrace

6

#3 Prevent the attack of the BLOBLarge pieces of content (BLOBs) can monopolize too much server bandwidth.A best practice to prevent this is to keep the large files on a separate server outside of the main content database. This practice, enabled by an add-on feature pack for SQL Server 2008 R2, allows for better performance accessing both smaller and larger files.

#4 Use your logs but use them wellA good logging strategy is critical for optimized performance.Properly configure your ULS logs, flood protection, health data collection and developer dashboard to troubleshoot more quickly and avoid information overload.

#5 Pay attention to permissionsPermission issues can be a large detractor from the SharePoint user experience.You should match the correct service account to the appropriate tasks by user to minimize unintended changes.

To explore Jason’s tips in more depth, visit his blog or on Twitter: @sharepointlhorn.

Jason is a SharePoint thought leader with great tips focused on configuration and troubleshooting. We summarized his tips that we’ve read around the web.*

Best Practices 3-4-5

Jason Himmelstein

Senior Technical Director for SharePoint

Atrion

Jason Himmelstein is a SharePoint expert with more than

15 years working with Microsoft and related technologies.

He is an ITPro Solutions Architect and SharePoint Server

MVP and has architected solutions for up to 120,000 users.

He is currently Senior Technical Director for SharePoint at

Atrion, a New England based consulting firm. He is an active speaker and co-author of

the O’Reilly book, “Developing Business Intelligence Apps for SharePoint.”

1 2 3 4 5 6 7 8 9 10

Back to table of contents

*Note: Sourced from Jason’s many useful online presentations.

Jason’s blog: sharepointlonghorn.com • Twitter: @sharepointlhorn

Page 7: 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to mprove Performance 2015 ynatrace 3 ntrouction The first implementation may have been

10 SharePoint Best Practices to Improve Performance© 2015 Dynatrace

7

SQL

#6 SQL performance optimizationSharePoint performance is oftentimes the benchmark to a successful implementation for many organizations.When SharePoint and its components are not properly configured, you can be left with a system that is eerily

reminiscent of navigating the Internet on dialup, i.e. pages loading extremely slow. The good news is there are number of ways to resolve this shortcoming.

SQL performance is typically the best place to start, because SQL is the foundation on which SharePoint runs. There are many options for altering the SQL configuration that will greatly improve SharePoint performance, such as:

> setting the maximum degree of parallelism to one

> splitting the various SharePoint databases to multiple drives

> setting the maximum memory to the appropriate level for the average number of users on SharePoint

> setting up dedicated temporary database drives

There are many additional options to consider as well when trying to increase SharePoint performance, such as: properly configuring the distributed cache, setting up and configuring BranchCache and load balancing the web front ends, among others.

Ultimately, all of these approaches will help yield large gains in SharePoint performance. Which options you choose to implement is up to you.

“When SharePoint and its components are not properly configured, you can be left with a system that is eerily reminiscent of navigating the Internet on dialup.”

Best Practice 6

Dustin Williard

Senior Solutions Architect

Red Brick Data

Dustin L Willard is a Senior Solutions Architect at Red Brick

Data who advises businesses, organizations, and individuals

on how to use, design and implement various technical

solutions. Dustin has a proven track record of successfully

designing and implementing many large and small-scale

technical solutions, with a primary focus in SharePoint solutions, for businesses of all

shapes and sizes. Red Brick Data is a technical management consultancy firm on the

front line of helping companies implement third party tools in New England.

1 2 3 4 5 6 7 8 9 10

Back to table of contents

Contact: [email protected]

Page 8: 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to mprove Performance 2015 ynatrace 3 ntrouction The first implementation may have been

10 SharePoint Best Practices to Improve Performance© 2015 Dynatrace

8

#7 Limit logging in production Logging is undoubtedly a helpful tool during development, and developers should use it to help them troubleshoot their code. In production, however, application logging usually fails to analyze application failures. Why?Logging strategies are naturally brittle: they depend heavily on developers, usually lack vital context and, if not designed carefully, they may severely slow down your application. You can assess whether you have implemented a healthy logging strategy that does not adversely impact your application performance by watching the log messages produced by your application along the stages of the deployment pipeline.

Read my blog post to learn more about: The Good Parts and the Bad Parts of Logging

Best Practice 7

Martin Etmajer

Technology Strategist

Dynatrace Center of Excellence

Martin has 10+ years of experience as a developer and

software architect, as well as in maintaining highly available

and performant cluster environments. He serves as

Technology Strategist at the Dynatrace Center of Excellence

where he focuses on performance monitoring in Cloud

technologies and along the Continuous Delivery deployment pipeline.

Here are the key takeaways by role:Developers and Test Automation Engineers:

> Use logging as much as possible if it helps you to understand and troubleshoot your code.

> Be careful to utilize the various log levels appropriately, so that your random log messages will not make it into production.

> Use guard statements to prevent performance penalties arising from unnecessary parameter construction when a particular log level is disabled.

> Test Automation Engineers should be aware of any occurrences of urgent messages. These are serious indicators that your code is not yet ready to be released.

Performance Engineers:

> Stay alert of any urgent log messages during load tests. They indicate that the application is either not ready for production or that the application does not scale with the applied load.

> Keep an eye on the total number of log messages. Heavy logging activity during a load test may create inaccurate performance metrics.

Operations:

> Prohibit log messages, other than those containing basic startup and configuration information and make sure that these are permanently turned off by monitoring the number of log messages.

1 2 3 4 5 6 7 8 9 10

Back to table of contents

Martin’s blog: About: Performance • Twitter: @metmajer

Page 9: 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to mprove Performance 2015 ynatrace 3 ntrouction The first implementation may have been

10 SharePoint Best Practices to Improve Performance© 2015 Dynatrace

9

“Before starting a SharePoint project really think about what data you have, how frequently you need it and how many different users modify it.”

Every data element is stored in a single table. Database indices are implemented using a second table joined to the main table. Because data comes from the same table, concurrent access to different lists is a problem.

Read my blog post to learn more about: How to Avoid the Top 5 SharePoint Performance Mistakes.

Best Practices 8-9-10

The Problem: These companies all had to rewrite their SharePoint application by replacing the Content Database in most parts in their applications with a “regular” relational database. Because SharePoint is not a relational database, it should not be used for high-volume transactional processing.

The Solution: Before starting a SharePoint project really think about what data you have, how frequently you need it and how many different users modify it. If you have many data items that change frequently you should really consider using your own relational database.

The great thing about SharePoint is that you are not bound to the Content Database. You can practically do whatever you want including accessing an external database. Be smart and don’t end up rewriting your application.

Andreas Grabner

Performance Advocate

Dynatrace

Andreas Grabner has been helping companies improve

their application performance for 15+ years. He is a

regular contributor within Web Performance and DevOps

communities and a prolific speaker at user groups and

conferences around the world.

#8 Architect with data usage in mindI’ve run into several companies that made one big mistake: they thought that SharePoint is the most flexible database on earth.SharePoint is flexible because you can define lists on the fly and modify them as needed without worrying about underlying database schema. But SharePoint is not a relational database.

1 2 3 4 5 6 7 8 9 10

Back to table of contents

Andreas’ blog: About:Performance • Twitter: @grabnerandi

Page 10: 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to mprove Performance 2015 ynatrace 3 ntrouction The first implementation may have been

10 SharePoint Best Practices to Improve Performance© 2015 Dynatrace

10

#9 Don’t let default settings ruin your user experienceSharePoint has a lot of features and functionality and even when using it straight out of the box, the default settings may not be right for your particular use case.On a customer engagement, we identified an interesting source of a potential performance

Best Practices 8-9-10

problem that impacts ALL SharePoint and .NET-based installations using the ServicePointManager to access web services. It turns out that ServicePointManager comes with a default setting that allows only two concurrent connections. If you happen to have a SharePoint dashboard that queries data from more than two data sources, your end users will suffer from a very long page load time.

So – the solution to this problem is to change the default value. In this case, it should be at least set to the number of allowed Web Parts on a single dashboard because most of them will execute asynchronous web service calls. This problem is obviously not only relevant for custom SharePoint development but can impact any .NET application that uses ServicePointManager.

Read my blog post for more detail on how we identified the problem and resolved the issue: Don’t Let Default Settings Ruin Your End User Experience.

1 2 3 4 5 6 7 8 9 10

“SharePoint has a lot of features…straight out of the box, the default settings may not be right for your particular use case.”

Back to table of contents

Andreas Grabner

Performance Advocate

Dynatrace

Page 11: 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to mprove Performance 2015 ynatrace 3 ntrouction The first implementation may have been

10 SharePoint Best Practices to Improve Performance© 2015 Dynatrace

11

#10 Don’t let your data access patterns go wild It is important to understand what happens under the hood—just because it works on a developer’s machine or in a small-scale load test, doesn’t mean it will scale in production.You should analyze both database access patterns and data-driven access patterns per request.

Read my blog post for more detail on analyzing database access patterns: Database Access Patterns Gone Wild.

Best Practices 8-9-10

1 2 3 4 5 6 7 8 9 10

Back to table of contents

Andreas Grabner

Performance Advocate

Dynatrace

Here are the key takeaways by role:Analyze database access patterns

> Operations: You should not just be monitoring the number of SQL statements executed but also repetitive SQL statements per transaction. Since things like this can always slip into production, it makes sense for you to monitor this for every transaction.

> Developers: Optimize your database access. If these statements have to be executed that many times, make sure these statements get prepared. Otherwise think about caching this data in the app instead of requesting it all over again.

Analyze data driven access patterns per request

> Operations: Monitor the execution time and count of critical stored procedures. When they show huge differences in response time, bring this to your DBA’s attention.

> Database Admins: Analyze the long running stored procedures to see if they can be optimized. Work with Operations to setup correct monitoring and alerting.

> Developers: Why execute so many similar SQL statements? Wouldn’t this be a candidate to put into a stored procedure?

Page 12: 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to mprove Performance 2015 ynatrace 3 ntrouction The first implementation may have been

10 SharePoint Best Practices to Improve Performance© 2015 Dynatrace

12

Introduction

We hope the best practices shared here will help you improve the end-user experience of your SharePoint deployment.If you would like to understand the root cause of issues with SharePoint, beyond some of the tips we’ve shared above, please check out Andreas Grabner’s blog titled “How to do a SharePoint Performance Sanity Check in 15 Minutes”.

Whether you are a Developer, Tester or Power User of SharePoint, you can do a quick performance sanity check on your installation so you can analyze any performance hotspots, configuration or deployment issues. This is important because if you are responsible for SharePoint you want to know:

> Why certain Pages, Lists or Views in SharePoint are slow

> Which web parts have implementation issues such as inefficient database access or bad coding

> Whether you have configuration problems that lead to bad or slow behavior

> Which Pages, Lists or Views are actually used or are not used

> Whether your current server resources (CPU, memory, disk, network) can handle the expected load

Conclusion

Conclusion

READ: How to do a SharePoint Performance Sanity Check in 15 Minutes

WATCH: SharePoint Performance Analysis in 15 Minutes

From the Experts:

> Wendy Neal: • SharePoint Usability.

> Jason Himmelstein: • sharepointlonghorn.com

> Martin Etmajer: • The Good Parts and the Bad Parts of Logging

> Andreas Grabner:

• How to Avoid the Top 5 SharePoint Performance Mistakes.

• Don’t Let Default Settings Ruin Your End User Experience.

• Database Access Patterns Gone Wild.

Back to table of contents

Page 13: 10 SharePoint Best Practices to PRAC TICES BEST Improve ... · 10 SharePoint Best Practices to mprove Performance 2015 ynatrace 3 ntrouction The first implementation may have been

SHAREPOINT

BESTPRACTIC

ES

SHAREPOINT

BESTPRACTIC

ES

Learn more at dynatrace.com

Dynatrace is the innovator behind the new generation of Application Performance Management. Our passion: helping customers, large and small, see their applications and digital channels through the lens of end users. Over 5,800 organizations use these insights to master complexity, gain operational agility, and grow revenue by delivering amazing user experiences.

3.18.15 295_10SharePointBestPractices_jg