The best way to plan and measure SharePoint performance is by Request Per Second (RPS). The general rule is to plan for 1 RPS (requests per second) per 1000 users, but the number of users, in and of itself, means NOTHING! We can support 100,000 users on a single server farm running on laptop if they each average 1 request every 12 hours, thus producing 100k requests over 12 hours what gives us 2 RPS :)
During the Planning Phase we need to determine RPS for our farm to provide the correct number of farm servers. I recommend to use the followin approach:
- categorize user profiles by Request Per Hour (RPH) group:
- Light - 20 users
- Typical - 36 users
- Heavy - 60 user
- Extreme - 120 user
- multiply number users by number ops per usage profile
- Factor in peak concurrency
Let's review how to calculate RPS for our new SharePoint Farm installation on the fictional sample.
Ogranization has 80k employees, up to 40k may be at work during any 8 hour window and concurrency is from 5% to 10% at peak. Let's assume that usage is
10% light, 70% typical, 15% heavy, 5% extreme users.
Now, we need to categorize active users by profiles, taking into account usage assumption
- (10% light x 40k) x 20 RPH = 80,000 RPH
- (70% typical x 40k) x 36 RPH = 1,008,000 RPH
- (15% heavy x 40k) x 60 RPH = 360,000 RPH
- (5% extreme x 40k) x 120 RPH = 240,000 RPH
- 1,688,000 / 3600 (seconds per hour) = 469 RPS
We have 469 RPS in total. To get the total number of RPS our Farm is able to serve just multiply number of RPS on concurency peak: 469 x 10% peak = 46.9 RPS required
So, our farm with 80,000 users should serve 47 RPS, what complies with the general rule described before - 1RPS for 1000 users.
The number of Farm servers depends on our RPS calculations, where choose between the small (single WFE), medium (to WFE) and large farms based on the following values:
- 100rps for small
- 200rps for medium
or by number of uses (if RPS is less)
- <50k for small,
- <100k for medium,
- < 500k large
I personally recommend to delete those values on 2.