Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Introduction
Sizing a Microsoft Server Farm
Implementation Examples
As Enterprises begin to realize the true TCO savings potential of the SoftGrid platform, more and more systems are being propagated throughout the market. In light of this fact, it becomes necessary to clearly define the sizing considerations when deploying this evolutionary new platform. This guide will help size a SoftGrid system and shows implementation examples of a properly implemented solution.
Planning a Microsoft SoftGrid server farm begins with determining how many servers are needed to successfully support the Microsoft SoftGrid user community. Since Microsoft SoftGrid uses streaming to deliver applications, the basis by which we determine load is in streams as opposed to users. The formula below calculates the number of servers needed based on stream count.
Total Required Servers = (Concurrent Stream Requirement / Individual Server Capacity) + Redundancy Factor
There is a slightly different model for calculating Concurrent Stream Requirement based on whether the SoftGrid Terminals Services Client or the SoftGrid Windows Desktop Client is being used due to the multi-user accessibility of the SoftGrid for Terminal Services client.
For SoftGrid for Windows Desktop, the formula is
Concurrent Stream Requirement = Concurrent Users * Concurrent Application Request
For SoftGrid for Terminal Services, the formula is
Concurrent Stream Requirement = Total Terminal Servers * Concurrent Application Request
This represents the maximum number of users who will be using the system at the same point in time.
This variable represents the number of applications assigned that are most likely to be launched back to back at any one time. However, there is a difference in the variables when calculating load based on a SoftGrid for Windows Desktop Client vs. a SoftGrid for Terminal Services Client.
In a SoftGrid for Windows Desktop model, each desktop is considered a single unit and the Concurrent Application Request is simply the typical number of applications a single user will launch back to back on their own PC.
For example, a user is deployed Outlook, Word, Excel, and a Line of Business application. Upon login they typically launch Outlook and the LOB application totaling 2 applications. The Concurrent Application Request is therefore 2.
In a SoftGrid for Terminal Services model, each session will be launching applications from the same server. For example, a user is deployed Outlook, Word, Excel, and a Line of Business application. Upon login they typically launch Outlook and the LOB application #1 totaling 2 applications.
However, in most Terminal Server cases, applications launched across the sessions are common to the workgroup and therefore the initial launch threshold is only streamed for the first user. The subsequent users access the application from the SoftGrid cache without additional server streaming. Therefore, the true Concurrent Application Request would reflect the number of unique applications across all back to back launches per Terminal Server.
Based on our example, a typical user set might use the same e-mail program such as Outlook and a line of business application. The users would be launching the same two apps back to back, requiring only 2 streams per Terminal server. The Concurrent Application Request for that session is therefore 2, however, there are multiple sessions across that terminal server. If half of those users launch LOB application #2 instead of LOB application #1, then there are now three unique applications being launched.
The formula for determining Concurrent Application Request for SoftGrid for Terminal Services is:
Concurrent Application Request = Number of Unique Applications Launched back to back per Session
Core Values
Total Users: 10,000
Total Concurrent Direct Stream Users 5,000
Total Applications Being Deployed 50
Average Chunk Size 2 MB
Average Application Assignment per User: 6
Concurrent Application Request 2
Concurrent Stream Requirement = Concurrent Users * Concurrent Application Request
Concurrent Stream Requirement = 5000 * 2 = 10,000
This Bring our formula to 10,000 \ Individual Server Capacity + Redundancy Factor
The following formula will determine individual server capacity:
Individual Server Capacity = Lowest Common Denominator (Processor, Network Adapter)
RAM calculation is assumed to not be able to exceed current processor to RAM capacity capabilities in today’s servers.
PIII 700 or above Processor = 700 Concurrent Streams
Average Chunk Size = 2 MB per application
(Average Chunk size is the aggregate number of Chunk sizes across all applications as found in the Sequencer / total applications)
Stream Bandwidth per Session = 128k per stream
A single PIII 700 or above will support up to 700 Concurrent streams. An SMP capable server yields approximately a 1 to 1 ratio for scaling processor capacity.
Network Adapter Capacity is determined by the following formula assuming Operating System overhead is 1 Mb and Ethernet saturation is 80% utilization:
Network Adapter Capacity = .80 * Network Speed – Operating System Overhead \ Stream Bandwidth per Session
Required RAM is determined by the following formula:
Required RAM = OS RAM Requirement + (Average Chunk Size * (Lowest Common Denominator (Processor, Network Adapter)))
Core Values
Processors 2
RAM Capacity 8 GB
OS RAM Requirement 256 MB
Processor Capacity = 2 * 700 Streams = 1400 Streams
Network Adapter Capacity 100 Mb Nic = .80 * 100 Mb – 1 Mb = 79 Mb / 128 k = 617 Concurrent Streams
Network Adapter Capacity 1 Gb Nic = .80 * 1 Gb – 1 Mb = 799 Mb / 128 k = 6242 Concurrent Streams
Individual Component Capacities:
Dual Processor = 1400 Stream Capacity
100 Mb Network Adapter = 617 Stream Capacity
1 GB Network Adapter = 6242 Stream Capacity
Please note: the higher of the two network adapter capacities is used in planning to maximize the individual server load and conserve cost.
Component Stream Load = Lowest Common Denominator (1400, 6242) = 1400 (Assumes Gb Network Adapter)
Individual Server Capacity = 1400 Streams
This brings the overall formula to (10,000 \ 1400) + Redundancy Factor
This is simply the N+X strategy by which redundancy of servers is determined for fault tolerance. A typical company may require N+1 as a base as another might adhere to N+2.
Core Values
Concurrent Stream Requirement 10,000
Individual Server Capacity 1400
Redundancy Factor N+1
Formula:
10,000 \ 1400 = (7.14) Roundup = 8 Servers + 1 Redundant Server = 9 Servers
The Total Number of Required Servers is 9 in this configuration.
Required RAM = ((Average Chunk Size * Total Concurrent Stream Requirement) / Total Required Servers) + OS RAM Requirement
Individual Server RAM Requirement = ((2 MB * 10000) \ 9) + 512 MB = 2.75 GB RAM
Individual Server RAM Requirement = 2.75 GB
A faster disk subsystem should be used to service multiple requests to the server and have capacity to store the SoftGrid files.
SCSI with RAID level 0 + 1, 5, 1.
Four gigabytes or higher.
The following points explain the licensing requirements for the Microsoft SoftGrid implementation.
Please reference the Microsoft Desktop Optimization Pack for Software Assurance licensing requirements for SoftGrid for Desktops.
Please reference the SoftGrid for Terminal Services licensing for details.
- A valid copy of Microsoft Windows 2000 Server, Advanced Server, or Windows 2003 Standard or Enterprise server is also required. Please see Microsoft for Windows server licensing information.
MSDE is a free database and requires no further licensing.
Microsoft SQL Server does have licensing considerations. Please see the link below for SQL Licensing options:
https://www.microsoft.com/sql/howtobuy/default.mspx
Per Processor Model – Each processor on the SQL server housing the SoftGrid database must be licensed.
Microsoft SQL CAL Model - Each end-point that will connect indirectly to the Microsoft SQL Server through the services provided by the Microsoft SoftGrid Server must have a Microsoft SQL CAL. The following link explains three tier architectures and Microsoft SQL licensing: https://www.microsoft.com/sql/howtobuy/multiplexing.mspx
- Application licensing must be followed according to the manufacturers End-User License Agreement or Site License. Using Microsoft SoftGrid does not exempt the End User from strict adherence to the manufacturer’s EULA in any way.
SoftGrid uses a database to centrally store SoftGrid configuration, applications information and collect metering data. Microsoft SoftGrid supports Microsoft SQL Server and MSDE. The overall size of the configuration tables of the SoftGrid database will not grow past the 10 MB range, however, if metering and/or license tracking is turned on, then there are further database sizing considerations.
MSDE 2000 or higher
SQL Server 2000 SP3 or higher (SP3 required for Windows Server 2003)
MDAC 2.6 or higher (only for Database, web service require 2.8 or higher)
Initial DB size is 2 MB and rarely grows past that for configuration only.
The maximum rowsize in the Metering table (the only one that will grow significantly through usage) is about 5K and the average rowsize for start/stop transactions would be more like about 1K. So, for example, if there are 2000 users all starting and stopping an average of 5 applications per day, the daily data logged would be about 10MB and so on. This is an approximation and can very slightly.
The following implementation examples depict three separate scenarios. First is a Microsoft SoftGrid implementation using only Direct Streaming, the second uses Microsoft SoftGrid as a management foundation for a Terminal Services implementation, and the third shows a “dual-mode” scenario with applications being streamed both directly to the end-user and to Terminal Services.
This system would be used to deploy applications to LAN and WAN users directly.
Total Users 10,000
Total Concurrent Direct Stream Users 5,000
Total Concurrent Terminal Server Users 0
Total Applications Being Deployed 25
Average Application Assignment per User 6
Number of Applications Launched Back-to-Back 2
Average Application Chunk Size 2 MB
Internal DNS Name Space ABC.Int
External DNS Name Space ABC.Com
Redundancy Factor N+1
Windows 2003 Server
Dual P4 2.8 GHz/512k Cache
8 GB Capable
1x1 Gb NIC
2x18.2 SCSI III Hard Drives
RAID 1
Concurrent Stream Requirement = Concurrent Users * Concurrent Application Request
Concurrent Stream Requirement = 5000 * 2 = 10,000
This Bring our formula to 10,000 \ Individual Server Capacity + Redundancy Factor
Component |
Detail |
Component Capacity |
Total |
---|---|---|---|
Processor |
2xP4 2.8 GHz |
700 Streams |
1400 Streams |
Network Adapter |
1 Gb |
.80 * Adapter Speed – 1Mb / Stream Size |
6242 Streams |
Individual Server Capacity = Lowest Common Denominator (1400, 6242)
Individual Server Capacity = 1400 Streams
Total Required Servers = Concurrent Stream Requirement \ Individual Server Capacity + Redundancy Factor
Total Required Servers = ((5000 * 2) \ 1400)) + 1 = 9 Servers
Required RAM = ((Average Chunk Size * Concurrent Stream Requirement) / Total Required Servers) + OS RAM Requirement
Individual Server RAM Requirement = ((2 MB * 10,000) \ 9) + 512 MB = 2.75 GB RAM
This system would be used to easily manage a Terminal Server farm while providing on-demand application use from a single group of Terminal Servers.
Total Users 5,000
Total Concurrent Direct Stream Users 0
Total Concurrent Terminal Server Users 3,000
Total Applications Being Deployed 50
Average Application Assignment per User 10
Number of Applications Launched Back-to-Back 2
Internal DNS Name Space ABC.Int
External name Space ABC.Com
Redundancy Factor N+1
Windows 2003 Server
Dual P4 1 GHz/512k Cache
8 GB RAM Capacity
1x1 100 NIC
2x18.2 SCSI III Hard Drives
RAID 1
User Capacity = 50 Users
User capacity per server 50 Users
Total Concurrent Terminal Server Users 3,000
3000 concurrent users / 50 users per server = 60 Total Terminal Servers
Windows 2003 Server
Dual P4 2.8 GHz/512k
Cache 8 GB Capable
1x1 Gb NIC
2x18.2 SCSI III Hard Drives
RAID 1
Concurrent Stream Requirement = Terminal Servers * Concurrent Application Request
Concurrent Application Request = Unique Apps Launched back to back
Concurrent Application Request = 2
Concurrent Stream Requirement = 60 * 2 = 120
Concurrent Stream Requirement (SoftGrid for Terminal Services) = 120
This Bring our formula to 120 / Individual Server Capacity + Redundancy Factor
Component |
Detail |
Component Capacity |
Total |
---|---|---|---|
Processor |
2xP4 2.8 GHz |
700 Streams |
1400 Streams |
Network Adapter |
100 Mb |
.80 * Adapter Speed – 1Mb / Stream Size |
617 Streams |
Individual Server Capacity = Lowest Common Denominator (1400, 617)
Individual Server Capacity = 617 Streams
Total Required Servers = Concurrent Stream Requirement \ Individual Server Capacity + Redundancy Factor
Total Required Servers = (120 \ 617) + 1 = 2 Servers
Required RAM = ((Average Chunk Size * Total Concurrent Stream Requirement) / Total Required Servers) + OS RAM Requirement
Individual Server RAM Requirement = ((2 MB * 120) \ 2) + 512 MB = 632 MB RAM
This system would be used to deploy applications directly to the desktop as well as any remote users using Terminal Services.
Total Users 10,000
Concurrent Users 5,000
Total Direct Stream Users 3,500
Total Terminal Server Users 1,500
Total Applications Being Deployed 150
Average Application Assignment per User 10
Number of Applications Launched Back-to-Back 2
Internal DNS Name Space ABC.Int
External name Space ABC.Com
Redundancy Factor N+1
Windows 2003 Server
Dual P4 1 GHz/512k Cache
8 GB RAM Capacity
1x1 100 NIC
2x18.2 SCSI III Hard Drives
RAID 1 User Capacity = 50 Users
User capacity per server 50 Users
Total Concurrent Terminal Server Users 1,500
1,500 concurrent users / 50 users per server = 30 Total Terminal Servers
Windows 2003 Server
Dual P4 2.8 GHz/512k Cache
8 GB RAM Capable
1x1 Gb NIC
2x18.2 SCSI III Hard Drives
RAID 1
SoftGrid for Windows Desktop
Concurrent Stream Requirement = Concurrent Users * Concurrent Application Request
Concurrent Stream Requirement = 3,500 * 2 = 7,000
Concurrent Stream Requirement (SoftGrid for Windows Desktops) = 7,000
Terminal Services
Concurrent Stream Requirement = Terminal Servers * Concurrent Application Request
Concurrent Application Request = Unique Apps Launched back to back
Concurrent Application Request = 2
Concurrent Stream Requirement = 30 * 2 = 60
Concurrent Stream Requirement (SoftGrid for Terminal Services) = 60
Concurrent Stream Requirement (SoftGrid for Windows Desktops) = 7,000
Concurrent Stream Requirement (All Clients) = 60 + 7,000 = 7,060
This Bring our formula to 7060 / Individual Server Capacity + Redundancy Factor
Component |
Detail |
Component Capacity |
Total |
---|---|---|---|
Processor |
2xP4 2.8 GHz |
700 Streams |
1400 Streams |
Network Adapter |
1 Gb |
.80 * Adapter Speed – 1Mb / Stream Size |
6242 Streams |
Individual Server Capacity = Lowest Common Denominator (1400, 6242)
Individual Server Capacity = 1400 Streams
Total Required Servers = Concurrent Stream Requirement \ Individual Server Capacity + Redundancy Factor
Total Required Servers = RoundUp((7060 / 1400)) + 1 = 7 Servers
Required RAM = ((Average Chunk Size * Total Concurrent Stream Requirement) / Total Required Servers) + OS RAM Requirement
Individual Server RAM Requirement = ((2 MB * 7060) / 7) + 512 MB = 2.70 GB RAM
Download