Front End servers
S4B server 2019 offers some new sizing numbers compared to S4B server 2015. What we are used to in S4B server 2015 is the max capacity for users in a pool being 80k consisting of 12 Front End servers. For S4B server 2019, the limit has increased to 106k users on 16 Front End servers. So that means the largest number of Front End servers we can now have in a pool is 16. So how does this (if at all) change the number of users per Front End server? If you recall, in S4B server 2015, the max amount of users is 6660 per Front End server. This number came to be when we divided (12 Front End servers / 80k users = 6,666), but then for whatever reason, Microsoft would state 6,660 instead of the 6,666 as the recommended number of users per Front End server.
Well, that number has decreased by a mere 35 users per Front End server to what would be 6625 (16 Front End servers / 106k users = 6,625). But we know that Microsoft still stands by the 6,660k users being supported per Front End server even in S4B server 2019. Ideally, this is good for many of the deployment methodologies because they don’t have to change very much from a Front End server capacity planning point of view. Now take into consideration that the total number of users has increased from 80k to 106k which is a difference of 26k users. When we look at the difference (26k) and we divide that by the new additional servers supported for a pool (4), we get 6,500k which is the number of users in theory that the extra load of users per server that can be handled. So if we multiply (6,500k users) X (16 Front End servers) we actually get 104k users.
So it would appear that something is a little off, wouldn’t it? I will not start digging down the rabbit hole for a mere 2k user difference, of the 104k users and the 106k users, but it does make you wonder how the numbers have come to fruition 🙂
NOTE: The hardware for Front End server and Back End servers has changed fromS4B server 2015 to 2019 in the sense that 32GB memory was the minimum recommendation for S4B server 2015 and now 64GB memory is the minimum recommendation.
Keep in mind with server capacity planning that you should always take into account the N-1 factor of planning for when a single server is unavailable with the rest of the remaining servers being able to take on the full load of the existing pool. When a server is unavailable, its connections are transferred over automatically to the other servers in the existing pool. In a scenario where we have 50k, connections and 8 Front End servers that would mean approx. 6,250 connection per Front End server. The 6,250 puts us under the limit of 6,660 per Front End server. If one server becomes unavailable, then 6,250 connections would be divided up among the other 7 remaining servers which would increase each of the remaining servers approximately 892 connections (6,250 \ 7). That would then put us at a total of 7,142k users per Front End server which takes us over the 6,660 recommended limit.
If you were to have 10 Front End servers for the 50k user pool then this puts each Front End server at approximately 5k connections per Front End server. In the case that a single server is unavailable then 5,000k connections are distributed across the 9 remaining Front End servers which comes to approximately 555 increase for each Front End server. So now we have about 5,555k connections per Front End server which is within the Microsoft recommend range of users per Front End server.
At the end of the day, increasing the number of Front End servers from 12 to 16 is pretty cool with S4B server 2019. The usage capacity varies slightly in the total number of connections a pool can handle, but then the recommended connections per Front End server hasn’t really changed all that much. The last three words to remember for consideration are: planning, planning, and planning.