This document provides an overview of SharePoint Server 2013 farm architecture and performance planning. It discusses farm topology options, web application and service application architectures. It also covers capacity planning best practices like monitoring tools, hardware sizing, database limits and search scaling. The presentation aims to help architects design high performance farms that meet service level targets.
2. BEN CURRY / MANAGING PARTNER
• Founding Partner of Summit 7 Systems, Inc.
• Summit 7 Systems Lead Architect
• Six time Microsoft® MVP for SharePoint Server
• CISSP, Microsoft Certified Trainer, CCNA, MCITP:
SharePoint Server
• Author of several SharePoint books by Microsoft
PRESSS
• Master SCUBA Diver Trainer
• ben.curry@summit7systems.com
@curryben http://summit7systems.com/blogs/author/ben-
curry/
3. OUR BACKGROUND
Summit 7 systems is a premier provider of consulting and implementation services specializing on the
Microsoft SharePoint Platform and FAST Enterprise Search.
» Summit 7 Systems was chosen by KMWorld Magazine as one of the top 100 Companies that Matter in Knowledge Management along with
companies such as Microsoft, Oracle and IBM.
» Summit 7 Systems was named to the 2011 and 2012 CRN Next-Gen 250 List as a company bringing innovative processes, methodologies and
models to the solution provider industry.
» Top 1% of Microsoft Partners Worldwide
» Summit 7 Systems was named #6 on the 2012 CRN Fast Growth 100 based on our 2009 – 2011 growth of over 930% per year.
» ~ 50% of Technical Staff hold US Government SECRET Clearances.
» Service Disabled Veteran Owned Small Business (SDVOSB).
4. PLATFORMS, SOLUTIONS & SERVICES
SOFTWARE PLATFORMS SERVICES
FAST Enterprise Search SharePoint QuickStart
SharePoint 2007 Information Architecture and Governance Development
SharePoint 2010 Upgrade and Migration
SharePoint 2013 Branding and Design (User Experience)
Office Platform Web Content Management Design and Deployment
Sitecore
SharePoint Search
Custom Workflow or Web Part Development
SOLUTION AREAS InfoPath Forms and Workflows
SharePoint Platform Solutions Performance Baselines and Best Practices Optimization
Enterprise Search Mapping Business Process to Software Platforms
Enterprise Content Management Cloud Services Design and Provisioning
Internet / Web Content Management
Remote Support Contracts
Extranet Solutions
Compliance Quickstart
Intranet Solutions
Business Process Management
Enterprise Project Management
Exchange Server
5. COMMERCIAL PAST PERFORMANCE
MEDICAL/PHARMA FINANCE ENERGY/CHEMICAL EDUCATION MANUFACTURING
University of Utah Medical OneWest Bank Otter Tail Power Kentucky Community and Hawker-Beechcraft
Center Technical College System
BBVA Compass Nova Chemicals Kimberly-Clark
St Jude Children’s Research Texas A&M University,
Hospital WellPoint Champion Technologies Qatar Coca Cola Bottling
Consolidated
Nektar Therapeutic Bank Independent QuikTrip UNC-Charlotte
SC Johnson
Pfizer Kraton Escola de Sao Paulo, Macau,
China Nucor Steel
6. STATE & LOCAL PAST PERFORMANCE
CITY OF
MINNESOTA COUNTY OF
ALABAMA KENTUCKY COMMUNITY & GALVESTON CHARLOTTE,
DEPARTMENT OF SANTA CLARA,
MEDICAID TECHNICAL COLLEGE SYSTEM COUNTY, TEXAS NORTH
TRANSPORTATION CALIFORNIA
CAROLINA
1 Year 14 Months Strategy and Governance 18 Months
Employee Portal 4 Months 8 Months
902TS Professional AvePoint DocAve SharePoint 2007 to
Services Contract Holder Architecture, SharePoint 2007 to SharePoint 2010 SharePoint 2010 Migration SharePoint 2010 SharePoint 2010
Implementation and Migration Extranet Requirements, Requirements, Design
SharePoint 2007 to Support SharePoint 2010 Public Planning and Design and Implementation
BPOS-Dedicated SharePoint 2010 to SharePoint 2013 Farm Branding, Custom
SharePoint 2010 Operations and Migration Development and Website
Migration Maintenance through Buildout
AnchorPoint Business Process Automation
Business Data Catalog Operations and
Development Project Management Office Maintenance through
AnchorPoint
SiteCore Web Content Management
Operations and Maintenance through
AnchorPoint
7. FEDERAL PAST PERFORMANCE
SPACE AND NATO MEADS DEPARTMENT OF
REDSTONE TEST MISSILE DEFENSE INTERNAL
MISSILE DEFENSE MANAGEMENT VETERANS
CENTER AGENCY REVENUE SERVICE
COMMAND AGENCY AFFAIRS
Sub to ERC and Bering Sub to Boeing, SRA Sub to ASD Sub to KAI Global Sub to Dell / Quest Sub to Dell / Quest
Straits Information International and Software Software
Technology Trident Group 2 Months 5 Months
9 Months 9 Months
22 Months 10 Months
Custom Workflow SharePoint and K2
Quest SharePoint SharePoint 2007 to
Information Architecture Information Architecture Development Workflow Development
Toolset Requirements, SharePoint 2010
Development Development / Troubleshooting
Design and Migration
SharePoint Branding and Implementation
System Stabilization SharePoint Logical and UX
SharePoint 2010 Physical Architecture
Migration
Dashboarding and
Business Intelligence
9. SHAREPOINT SERVER 2010
• Enterprise Search
• Project Server
• PerformancePoint
• FAST for SharePoint
• Excel Calc Services
• Sandboxed Solutions
• BCS
• Office Web Apps
• InfoPath
• Web Applications
• Word Conversions
• Usage Logging
• Visio Graphics
• Access Services
• Managed Metadata
• Secure Store
• User Profiles
• Web Analytics
10. OLD SCHOOL 2007
Web Web
Query Query
Incoming Email Incoming Email
Index Server
Excel Services
Document Conversions
SQL Server SQL Server
11. SHAREPOINT SERVER 2013 FARM
Web Web
QueryIndex QueryIndex
Incoming Email Incoming Email
Viso Graphics Service Viso Graphics Service
BCS BCS
Managed Metadata Managed Metadata
Crawler Crawler
Excel Services Excel Services
Document Conversions Document Conversions
Project Server Project Server
Secure Store Secure Store
PerformancePoint PerformancePoint
User Profiles User Profile Sync
Web Analytics User Profiles
SQL Server SQL Server
Reporting Services Reporting Services
Analysis Services Analysis Services
12. WEB APPLICATION ARCHITECTURE
http://portal.contoso.com
Site Site Site Site
Collection Collection Collection Collection
Content Content Content
Database Database Database
13. WEB APPLICATION ARCHITECTURE
http://portal.contoso.com
Site Site Site Site
Collection Collection Collection Collection
Application
SQL Content Content Content
Database
Pool
Server Database Database
14. SERVICE APPLICATION ARCHITECTURE
Web Application
Service Application Proxy
Service Service
Service
Application Machine Machine
Instance Instance
Service Instance Service Instance
16. SCALING SEARCH
Crawl Server (component)
› Temp Indexing
› Connects to Crawl Database
Query Server (component)
› Index Partition and Query Component
› Can be Primary or Failover
Property Database
Crawl Database
Crawling Target Server (dedicated host for crawling)
17. SEARCH ARCHITECTURE
Web Web Web
QueryIndex QueryIndex - Crawl Target
Misc Apps Misc Apps
- Crawler - Crawler
SQL Server SQL Server
- SearchDB - SearchDB
- PropertyDB - PropertyDB
18. CAPACITY & PERFORMANCE PLANNING
Research and Study
› http://technet.microsoft.com/en-us/library/cc262971.aspx
Define your targets
Create Logical Architecture
Design Physical Architecture
Test and validate
Log and Monitor
Adjust architecture as needed
20. MY TOOLBOX
Internet Explorer Developer Toolbar
Visual Round-trip Analyzer
› Free Download
› Requires Netmon 2.x
Fiddler
Dev Dashboard
Visual Studio Team Suite & Ultimate versions
22. WEB APPLICATION BOUNDARIES
LIMIT MAXIMUM VALUE LIMIT TYPE NOTES
Administrative operations such as creating a new site
collection will experience decrease in performance.
Content database 300 per Web application Supported Use Windows PowerShell to manage the Web
application when a large number of content databases
are present.
The number of zones defined for a farm is hard-coded
Zone 5 per Web application Boundary
to 5.
Managed paths are cached on the Web server, and
Managed path 20 per Web application Supported CPU resources are used to process incoming requests
against the managed path list.
Application Pools 10 per Web Server Supported RAM and Workload
23. CONTENT DATABASE BOUNDARIES
+200GB requires disk I/O of .25 IOPS per GB,
200 GB per content database. but 2 IOPS per GB is recommended.
Content database size Supported
**4TB w/ restrictions
Robust DR strategy
Strongly recommend limiting the number of
Site collections per content 2,000 recommended site collections in a content database to 2,000.
Supported
database 5,000 maximum *Up to 5,000 site collections in a database are
supported.
Time to first byte of any From the time that SharePoint Server 2010
Remote BLOB Storage (RBS)
response from the NAS cannot requests a BLOB, until it receives the first byte
storage subsystem on Network Boundary
exceed 20 milliseconds from the NAS, no more than 20 milliseconds
Attached Storage (NAS)
can pass.
24. VERY LARGE SCALE DEMO
14.4TB content database failed over in 45 seconds…
http://blogs.msdn.com/b/pandrew/archive/2011/10/06/vide
o-published-of-the-full-farm-failover-demo-in-the-
sharepoint-2011-conference-keynote.aspx
26. LISTS AND LIBRARIES BOUNDARIES
File size 2 GB Boundary The default maximum file size is 50 MB.
Documents 30,000,000 per library Supported Varies depending on organization, type and size.
This value may vary depending on the number of
Items 30,000,000 per list Supported
columns in the list and the usage of the list.
Maximum number of items that a database operation
List view threshold 5,000 Threshold can simultantouesly process (outside the daily time
window)
Navigation and management performance will
Subsite 2,000 per site view Threshold
decrease significantly as the number of subsites grows.
27. SEARCH BOUNDARIES
SharePoint search service
20 per farm Supported ..that’s more than you need!
applications
*10 crawl databases per search service
Crawl databases and database The supported limit is 10 crawl databases
application Threshold
Items per SharePoint Search service application.
*25 million items per crawl database
The total number of crawl components per
Crawl components 16 per search service application Threshold server must be less than 128/(total query
components) .
20 per search service application; 128 The boundary for the total number of index
Index partitions Threshold
total partitions is 128.
100 million per search service
Indexed items application; 10 million per index Supported
partition
Crawl log entries 100 million per search application Supported
Property databases 10 per search service application Threshold
Query components 128 per search application Threshold
Concurrent crawls 20 per search application Threshold
29. DOCUMENT CURRENT CONTENT
Database Sizes
Number of content databases
Number of site collections
› Current Quotas!
Number of Web apps
Search Index and DB size
User Profiles
30. DEFINE TARGETS
Server availability
Web application availability
Service Application availability
Response Times
Four ‘9s’ is achievable
› (but it is expensive…)
32. OVERVIEW OF INFRASTRUCTURE TESTING
Test single server or modify affinity/sticky
Firewall ports from controller and agents to
controller/agents/servers
Remote Registry permissions to tested servers
33. WHY TEST?
Ensure adequate resources
Test performance impact of Web parts
Test any major configuration change
DON’T GUESS. KNOW!
34. MY FARM SETUP
SharePoint Server 2010
FE01 FE02 SQL Server 2008 R2
(Web + Query) (Web + Query)
Visual Studio Ultimate 2010
Windows Server 2008 R2
App01 APP01
(Applications) SQL Server
35. PREPARE VISUAL STUDIO
Setup Results Database on SQL Server 2005 or 2008
Remove default tests if desired
Setup the test controller and agents
36. BUILD A TESTING 'RIG’
Requires Visual Studio 2010 Ultimate, Test, or Team Suite Editions
› If you don’t see ‘Test’ as an option, you have the wrong version
Must have one controller
› Use multiple agents for better real-world load
Create new Project using the ‘Test Project’ template
Create Load test results store (DB)
Set loadtest database as the repository
37. CREATE A TEST PROJECT
AND WIRE UP THE
REPOSITORY
Tip: Use loadtestresultsrepository.sql to create the repository database:
C:Program Files (x86)Microsoft Visual Studio 10.0Common7IDE’
38. TEST WEB PART IMPACT
Record Web test for the hosting page
Baseline load time
› Change run settings to test browser version and WAN clients
Load Web part
Test response time
Should not be used for production testing, but will give you a
good idea of Web part impact
39. CREATE LOAD TEST
Create load test using one or more Web tests
› Choose % mix for your environment
› For new implementations or complete unknowns,
use the posted mix on TechNet
Document Load Test Settings
› Be sure to use the same settings when comparing
baselines and changes
Create Peak and off-peak baselines
40. READING THE RESULTS
Processor time and Disk I/O are critical
Use Systems Center Operations Manager management pack
documentation for performance counters to monitor during tests
› Or rule author view
Load Test Summary is useful
Add custom counters for Search, etc.
45. WHAT ARE WE LOOKING FOR?
Processor
Upgrade processor
Processor - % Processor Time Over 75-85% Increase number of processors
Add additional server(s)
Disk
Increase number or speed of disks
Gradually increasing, system not in a steady state and
Avg. Disk Queue Length Change array configuration to stripe
queue is backing up
Move some data to an alternative server
Increase number of disks
% Idle Time Greater than 90%
Move data to an alternative disk or server
Increase number of disks
% Free Space Less than 30%
Move data to an alternative disk or server
Memory
Add memory.
Note:
Available Mbytes Less than 2GB on a Web server.
SQL server available memory will be low, by design, and
does not always indicate a problem.
Add memory
Cache Faults/sec Greater than 1 Increase cache speed or size if possible
Move data to an alternative disk or server
Pages/sec Greater than 10 Add memory
46. WHAT ARE WE LOOKING FOR?
Paging File
The server paging file, sometimes called the swap file, holds "virtual" memory
addresses on disk. Page faults occur when a process has to stop and wait while
% Used and % Used Peak Add memory
required "virtual" resources are retrieved from disk into memory. These will be
more frequent if the physical memory is inadequate.
NIC
Investigate further by monitoring Bytes received/sec and Bytes Sent/sec.
Over 40-50% of network capacity. This is the rate at which data is sent and
Total Bytes/sec Reassess network interface card speed
received via the network interface card.
Check number, size, and usage of memory buffers
Process
Working Set Greater than 80% of total memory Add memory
Increase number of processors
% Processor Time Over 75-85%.
Redistribute workload to additional servers
ASP.NET
Make sure that you have not implemented settings that automatically recycle the application
Application Pool Recycles Several per day, causing intermittent slowness.
pool unnecessarily throughout the day.
Implement additional Web servers
Requests Queued Hundreds or thousands of requests queued. The default maximum for this counter is 5,000, and you can change this setting in the
Machine.config file
As the number of wait events increases, users will experience degraded page
Request Wait Time Implement additional Web servers
rendering performance.
Requests Rejected Greater than 0 Implement additional Web servers
47. PROCESSOR & PROCESSES
Processor
This shows processor usage over a period of time. If this is consistently too high,
you may find performance is adversely affected. Remember to count "Total" in
% Processor Time
multiprocessor systems. You can measure the utilization on each processor as
well, to ensure balanced performance between cores.
Process
This counter indicates the current size (in bytes) of the working set for a given
- Working Set
process. This memory is reserved for the process, even if it is not in use.
This counter indicates the percentage of processor time that is used by a given
- % Processor Time
process.
Thread Count (_Total) The current number of threads.
48. PERFORMANCE COUNTERS
You should monitor processor performance to ensure that all processor usage does not remain consistently high (over 80 percent)
as this indicates that the system would not be able to handle any sudden surges of activity. And that in the common state, you will
Processor not see a domino effect if one component failure will bring the remaining components to a malfunctioning state. For example – if
you have three Web servers, you should make sure the average CPU across all servers is under 60% so that if one fails, there is still
room for the other two to pick up the extra load.
Monitor the rate at which data is sent and received via the network interface card. This should remain below 50 percent of
Network Interface
network capacity.
There are a number of logical disk options that you should monitor regularly. The available disk space is essential in any capacity
study, but you should also review the time that the disk is idle. Dependent on the types of applications or services you are running
Disks and Cache
on your servers, you may review disk read and write times. Extended queuing for write or read function will affect performance.
The cache has a major impact on read and write operations. You must monitor for increased cache failures.
Monitor the amount of physical memory available for allocation. Insufficient memory will lead to excessive use of the page file and
Memory and Paging File
an increase in the number of page faults per second.
49. DISK COUNTERS
This shows the average number of both read and write requests that were queued for the selected
disk during the sample interval. A bigger disk queue length may not be a problem as long as disk
Avg. Disk Queue Length
reads/writes are not suffering and the system is working in a steady state without expanding
queuing.
Avg. Disk Read Queue Length The average number of read requests that are queued.
Avg. Disk Write Queue Length The average number of write requests that are queued.
Disk Reads/sec The number of reads to disk per second.
Disk Writes/sec The number of writes to disk per second.
50. MEMORY COUNTERS
This shows the amount of physical memory available for allocation. Insufficient memory will lead to
- Available Mbytes
excessive use of the page file and an increase in the number of page faults per second.
This counter shows the rate at which faults occur when a page is sought in the file system cache and is not
found. This may be a soft fault, when the page is found in memory, or a hard fault, when the page is on
disk.
- Cache Faults/sec
The effective use of the cache for read and write operations can have a significant effect on server
performance. You must monitor for increased cache failures, indicated by a reduction in the Async Fast
Reads/sec or Read Aheads/sec.
This counter shows the rate at which pages are read from or written to disk to resolve hard page faults. If
- Pages/sec
this rises, it indicates system-wide performance problems.
Paging File
The server paging file, sometimes called the swap file, holds "virtual" memory addresses on disk. Page
- % Used and % Used Peak faults occur when a process has to stop and wait while required "virtual" resources are retrieved from disk
into memory. These will be more frequent if the physical memory is inadequate.
51. ASP.NET
Requests Total The total number of requests since the service was started.
Microsoft SharePoint Foundation 2010 provides the building blocks for HTML pages that are rendered in the
Requests Queued
user browser over HTTP. This counter shows the number of requests waiting to be processed.
The number of milliseconds that the most recent request waited in the queue for processing. As the
Request Wait Time
number of wait events increases, users will experience degraded page-rendering performance.
The total number of requests not executed because of insufficient server resources to process them. This
Requests Rejected counter represents the number of requests that return a 503 HTTP status code, indicating that the server is
too busy.
Requests Executing (_Total) The number of requests currently executing.
The number of requests executed per second. This represents the current throughput of the application.
Requests/Sec (_Total) Under constant load, this number should remain within a certain range, barring other server work (such as
garbage collection, cache cleanup thread, external server tools, and so on).
52. SQL SERVER
This object provides counters to monitor general server-wide activity, such as the number of current connections and the number of users
General Statistics
connecting and disconnecting per second from computers running an instance of SQL Server.
This counter shows the amount of user connections on your instance of SQL Server. If you see this number rise by 500 percent from your
User Connections
baseline, you may see a performance reduction.
This object provides counters to monitor bulk copy operations, backup and restore throughput, and transaction log activities. Monitor
transactions and the transaction log to determine how much user activity is occurring in the database and how full the transaction log is
Databases
becoming. The amount of user activity can determine the performance of the database and affect log size, locking, and replication.
Monitoring low-level log activity to gauge user activity and resource usage can help you to identify performance bottlenecks.
This counter shows the amount of transactions on a given database or on the entire SQL Server instance per second. This number is to help
Transactions/sec
you create a baseline and to help you troubleshoot issues.
Locks This object provides information about SQL Server locks on individual resource types.
Number of Deadlocks/sec This counter shows the number of deadlocks on the SQL Server per second. This should normally be 0.
Average Wait Time (ms) This counter shows the average amount of wait time for each lock request that resulted in a wait.
Lock Wait Time (ms) This counter shows the total wait time for locks in the last second.
Lock Waits/sec This counter shows the number of locks per second that could not be satisfied immediately and had to wait for resources.
This object provides counters to monitor compilation and the type of requests sent to an instance of SQL Server. Monitoring the number of
SQL Statistics query compilations and recompilations and the number of batches received by an instance of SQL Server gives you an indication of how
quickly SQL Server is processing user queries and how effectively the query optimizer is processing the queries.
This object provides counters to monitor how SQL Server uses memory to store data pages, internal data structures, and the procedure
Buffer Cache
cache, as well as counters to monitor the physical I/O as SQL Server reads and writes database pages.
53.
54. FOR MORE FROM SUMMIT 7
SYSTEMS…
facebook.com/summit7systems
@summit7systems
summit 7 systems
summit7systems
summit7systems.com/blogs