Server Capacity Calculation (Server Sizing)
by Ron Vigneri
This calculation of user capacity for a server has been developed over years of actual applications. The topic has been considered in various forms by others, but this methodology yields insight to the parameters that must be considered. A sample worksheet is included that shows server configuration comparisons. Using such a spreadsheet would allow a designer to compare configurations, which can then be price (budget) compared.
The equation is: Users = (A * B * C * D)/50
where
A = CPU Percentage Loading to be considered
B = CPU Speed in GHz
C = Motherboard Frontside Bus Speed in MHz
D = Number of CPU Cores (effective core count including multiple cores, hyperthreading, etc.)
Denominator of 50 from empirical data for networks running typical data applications
A few factors relative to the equation should be further explained.
1. The equation relates the percentage processor loading to be allowed, the CPU speed in GHz, the Frontside Bus Speed (FBS) in MHz and the number of effective CPU cores, along with an empirical factor derived from many practical server network operating systems and networked applications.
2. The “A” parameter considers the level of loading of the CPU. A typical value is 50% loading, which isn’t too high nor too low and is typical of a network server (Windows Server 2008 Enterprise) with the calculated maximum number of users running typical office data applications.
3. The “B” parameter is the processor (CPU) speed expressed in GHz.
4. The “C” factor is speed of the server motherboard’s frontside bus expressed in MHz.
5. The “D” factor is the effective number of processor (CPU) cores in the server (consider multiple cores and enhancements like Hyperthreading, etc.).
6. The “50” denominator is empirical for a server in a typical data environment, i.e., not additionally running Citrix, virtualization (VMWare, HyperV), VoIP, SQL Server, Exchange Server, etc. A reduction of this factor to a value of 75 to 100 would be recommended in such specialized network environments depending on the particulars. The result of the increased division factor will decrease the number of users that can be accommodated.
The equation was developed in Windows Server 2003 and Server 2008 environments, but mostly Server 2008 Enterprise networks setup and operated in many configurations for IT courses at Miller-Motte College, Wilmington, NC taught by the author over a 4-year period.
The typical server setup assumed a server RAM requirement of 16 MB per concurrent user plus 2 GB for the network operating system (NOS) housekeeping. So once the number of concurrent users is calculated by the sizing equation, the next calculation yields the minimum RAM size required. The second equation is:
RAM = (Users * 0.016) + 2
where
RAM = memory size in GB
Users = calculated from first equation
0.016GB = 16MB per concurrent user (can vary depending upon the applications on the network)
2GB = NOS network operation (can vary depending upon the applications on the network)
With these calculations, one can size a server for a network application instead of the “blue-sky”, “buy & try” or “over-specification” methods. The method presented is illustrated in the following Excel spreadsheet.
Server 2008 Server Capacity Calculation RJV
Users = A * B * C * D / 50 Assumes RAM of 16 MB per concurrent user,
plus 2 GB for NOS (moderate applications).
___________A______________B___________C________D
Item__Proc. Fractional____CPU Speed___FSB Speed___No. of___Concurrent___RAM _______Loading___________GHz_________MHz_____Cores______Users______GB
1________0.5______________2.9________1033_________1________30_______2.5
2________0.5______________2.9________1033_________2________60_______3.0
3________0.5______________2.9________1033_________4_______120_______3.9
4________0.5______________2.9________1033_________8_______240_______5.8
5________0.5______________2.9________1033________12_______359_______7.8
6________0.5______________2.9________1666_________1________48_______2.8
7________0.5______________2.9________1666_________2________97_______3.5
8________0.5______________2.9________1666_________3_______145_______4.3
9________0.5______________2.9________1666_________4_______193_______5.1
10_______0.5______________3.3________1666_________8_______440_______9.0
11_______0.25_____________3.3________1666________12_______330_______7.3
The presented method can save money, time, and worry in specifying a server for a particular set of users and network applications. It presents a rational method for the sizing of servers and has an empirical factor that can be changed to reflect the personal experience of an individual designer, if desired.
by Ron Vigneri
This calculation of user capacity for a server has been developed over years of actual applications. The topic has been considered in various forms by others, but this methodology yields insight to the parameters that must be considered. A sample worksheet is included that shows server configuration comparisons. Using such a spreadsheet would allow a designer to compare configurations, which can then be price (budget) compared.
The equation is: Users = (A * B * C * D)/50
where
A = CPU Percentage Loading to be considered
B = CPU Speed in GHz
C = Motherboard Frontside Bus Speed in MHz
D = Number of CPU Cores (effective core count including multiple cores, hyperthreading, etc.)
Denominator of 50 from empirical data for networks running typical data applications
A few factors relative to the equation should be further explained.
1. The equation relates the percentage processor loading to be allowed, the CPU speed in GHz, the Frontside Bus Speed (FBS) in MHz and the number of effective CPU cores, along with an empirical factor derived from many practical server network operating systems and networked applications.
2. The “A” parameter considers the level of loading of the CPU. A typical value is 50% loading, which isn’t too high nor too low and is typical of a network server (Windows Server 2008 Enterprise) with the calculated maximum number of users running typical office data applications.
3. The “B” parameter is the processor (CPU) speed expressed in GHz.
4. The “C” factor is speed of the server motherboard’s frontside bus expressed in MHz.
5. The “D” factor is the effective number of processor (CPU) cores in the server (consider multiple cores and enhancements like Hyperthreading, etc.).
6. The “50” denominator is empirical for a server in a typical data environment, i.e., not additionally running Citrix, virtualization (VMWare, HyperV), VoIP, SQL Server, Exchange Server, etc. A reduction of this factor to a value of 75 to 100 would be recommended in such specialized network environments depending on the particulars. The result of the increased division factor will decrease the number of users that can be accommodated.
The equation was developed in Windows Server 2003 and Server 2008 environments, but mostly Server 2008 Enterprise networks setup and operated in many configurations for IT courses at Miller-Motte College, Wilmington, NC taught by the author over a 4-year period.
The typical server setup assumed a server RAM requirement of 16 MB per concurrent user plus 2 GB for the network operating system (NOS) housekeeping. So once the number of concurrent users is calculated by the sizing equation, the next calculation yields the minimum RAM size required. The second equation is:
RAM = (Users * 0.016) + 2
where
RAM = memory size in GB
Users = calculated from first equation
0.016GB = 16MB per concurrent user (can vary depending upon the applications on the network)
2GB = NOS network operation (can vary depending upon the applications on the network)
With these calculations, one can size a server for a network application instead of the “blue-sky”, “buy & try” or “over-specification” methods. The method presented is illustrated in the following Excel spreadsheet.
Server 2008 Server Capacity Calculation RJV
Users = A * B * C * D / 50 Assumes RAM of 16 MB per concurrent user,
plus 2 GB for NOS (moderate applications).
___________A______________B___________C________D
Item__Proc. Fractional____CPU Speed___FSB Speed___No. of___Concurrent___RAM _______Loading___________GHz_________MHz_____Cores______Users______GB
1________0.5______________2.9________1033_________1________30_______2.5
2________0.5______________2.9________1033_________2________60_______3.0
3________0.5______________2.9________1033_________4_______120_______3.9
4________0.5______________2.9________1033_________8_______240_______5.8
5________0.5______________2.9________1033________12_______359_______7.8
6________0.5______________2.9________1666_________1________48_______2.8
7________0.5______________2.9________1666_________2________97_______3.5
8________0.5______________2.9________1666_________3_______145_______4.3
9________0.5______________2.9________1666_________4_______193_______5.1
10_______0.5______________3.3________1666_________8_______440_______9.0
11_______0.25_____________3.3________1666________12_______330_______7.3
The presented method can save money, time, and worry in specifying a server for a particular set of users and network applications. It presents a rational method for the sizing of servers and has an empirical factor that can be changed to reflect the personal experience of an individual designer, if desired.