10 sharepoint best practices to prac tices best improve ... · 10 sharepoint best practices to...
TRANSCRIPT
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
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
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
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
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
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
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]
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
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
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
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?
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
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