Server Sizing Guide

On This Page

Introduction
Sizing a Microsoft Server Farm
Implementation Examples

Introduction

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.

Sizing a Microsoft Server Farm

Sizing a Microsoft Server Farm

Determining Total Required Microsoft Servers

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

Determining Concurrent Stream Requirement

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

Concurrent Users

This represents the maximum number of users who will be using the system at the same point in time.

Concurrent Application Request

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

Calculating Concurrent Stream Requirement

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  

Determining Individual Server Capacity

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.

Component Baselines

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

Processor Load Capacity

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

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

Required RAM is determined by the following formula:

Required RAM = OS RAM Requirement + (Average Chunk Size * (Lowest Common Denominator (Processor, Network Adapter)))

Calculating Individual Server Capacity

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  

Determining a Redundancy Standard

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.   

Calculating Total Number of Required Servers    

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.

Calculating Required RAM per SoftGrid Server

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

Additional Server Considerations
Disk Subsystem

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.

Licensing

The following points explain the licensing requirements for the Microsoft SoftGrid implementation.

Microsoft SoftGrid Licensing
  • 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.

Microsoft Server Licensing
  • 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.
Microsoft SQL Server Licensing
  • 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
  • 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.

Database

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.

Supported Configurations
  • 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.

Rowsize Calculation  

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.    

Implementation Examples

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. 

Microsoft SoftGrid Direct Stream Implementation

This system would be used to deploy applications to LAN and WAN users directly.

Core Values

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

Standard Server

Windows 2003 Server  

Dual P4 2.8 GHz/512k Cache

8 GB Capable

1x1 Gb NIC

2x18.2 SCSI III Hard Drives

RAID 1

Total Required Microsoft Servers
Concurrent Stream Requirement

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  

Individual Server Capacity

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

Calculating Total Required Microsoft Servers

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

Installation Depiction

SizgGui1.gif

Microsoft SoftGrid Server Based Computing Implementation

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.

Core Values

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

Standard Terminal Server

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

Total Required Terminal Servers

User capacity per server                              50 Users

Total Concurrent Terminal Server Users        3,000

3000 concurrent users / 50 users per server = 60 Total Terminal Servers

Standard Server

Windows 2003 Server  

Dual P4 2.8 GHz/512k

Cache 8 GB Capable

1x1 Gb NIC

2x18.2 SCSI III Hard Drives

RAID 1  

Total Required Microsoft Servers
Concurrent Stream Requirement

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  

Individual Server Capacity

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

Calculating Total Required Microsoft Servers

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                       

Installation Depiction

SizgGui2.gif

Microsoft SoftGrid Dual-Mode Implementation

This system would be used to deploy applications directly to the desktop as well as any remote users using Terminal Services.

Core Values

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

Standard Terminal Server

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

Total Required Terminal Servers

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 

Standard Server

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  

Total Required Microsoft Servers
Concurrent Stream Requirement  

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  

Individual Server Capacity

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

Calculating Total Required Microsoft Servers

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

Installation Depiction

SizgGui3.gif

Download

Get the Microsoft SoftGrid Server Sizing Guide