Server Based Computing
Thin Client Computing
The benefits of Thin Client Computing
Thin Client Server Based Computing
Server based computing services
Thin Client Computing success stories
Thin Client Computing Events
About Thin Client Computing
Server based computing links
Contact Thin Client Computing
::> Return to Links Page <::

 

This Article was written by Christa Anderson and Steve Greenberg and originally appeared in
“Ask the Experts” at Thin2000.com

Question:  Can you recommend a white paper that suggests a good user-to-server ratio?. I am looking for a number that will give me an idea of how many NT servers I would need to run a thin client for 800 users or so. Thanks!

Steve: While various white papers exist which suggest strategies for server sizing [see links provided below], the real answer is “It depends!”.  This means that server sizing can only accurately be determined by testing the actual applications you want to use, in the particular ways you want to use them, in your actual operating environment

Christa: Right. The problem is that the number of users that a single server can support depends heavily on four factors. First, are the applications 32-bit or 16-bit? Second, how much data will the people using the terminal server be storing in memory? Third, how heavily will they be using those applications? Finally, are you running Windows Terminal Server or using Windows 2000’s terminal services?

Steve: In our client base we have seen a wide range of user count versus performance levels. The practical extremes that I have seen range from, on the lower end, as few as 30-35 power users on a quad Pentium Xeon based server. On the high end of user count, we have seen good results with up to 70 users on a dual Pentium III system running a “typical” mix of applications. As you can see, the range is pretty dramatic. These numbers are on well tuned systems- keep in mind that there are applications in which just one or two concurrent instances will bring any server to its knees! The white papers don’t seem to reflect these practical “real world” experiences.

Christa: You have to be careful with the white papers, since some of them can be very optimistic about the number of users you can successfully get on a terminal server. I’ve personally seen up to 200 users on a four-way machine, but that was a very specific circumstance and generally you’re not going to get anywhere near that.

Steve: To develop guidelines for your situation, I suggest using load simulation tools and seeking out case studies that describe situations similar to yours. I’d start with assessing the applications. For example, modern Win32 applications will take advantage of shared memory features such as “Code Sharing”. This means that multiple instances of the same WIN32 application need only be loaded into RAM once. For example, if 5 users runn Word and Excel from MS Office 2000 the executable files will only be loaded into memory one time for all 5 users. This doesn’t work with Win16 applications or DOS applications, both of which depending on running a unique NTVDM  (NT Virtual DOS Machine) and therefore can’t share memory. So, if you run 5 instances of the 16-bit Word and Excel from MS Office 4.x, all five instances will be loaded into memory separately!  Note that code sharing applies only to executable files and “helper” files; user data is loaded into memory separately for each user session, since that’s not shared.

Christa: And of course, if users require DOS applications you will have another problem: keyboard polling. Since they’re designed for a single-tasking environment, some DOS applications poll the keyboard for input so that they can respond as quickly as possible. Doing this uses up a lot of CPU cycles. Run Performance Monitor while a DOS application is running and watch the number of CPU cycles that are being chewed up. Too, you have to consider how heavily your user base will be relying on data in addition to using applications. Twelve people running PowerPoint but with no files open will use memory differently from the same twelve people each editing 50-slide presentations with lots of graphics. Before even considering terminal services, I’d survey your user base and see how people are using applications.

Steve: That’s a great point. To properly size your server farm you have to work with closely with end users, and, have tools that can give you meaningful feedback. Citrix offers "Resource Management Services" which is an excellent monitoring package to see all the details of performance and load by application, processes, user, memory, disk access, etc. It is often called "PerfMon on steroids". And if you’re using Windows 2000, you can use the Load Simulator, which allows you to create scripts which execute real world applications and user tasks which can be launched any number of times concurrently.

Christa: There’s also the question of how to distribute server resources—that is, whether it’s better to have a few larger servers or a lot of smaller servers. I'm more in favor of the "lots of smaller servers" model, for several reasons. First, although some sizing models suggest that you should be able to support X number of people per processor, this model does not take into account memory usage, which is at least as important as CPU usage and which depends heavily on how people use applications. Second, when you need to add capacity it's easier and faster to add another smallish server than it is to physically upgrade a big server. Third, if something happens to one of the existing servers it will impact you less if you loose, say, 1/5 of your total terminal server capacity than if you lose half of it--and it's much easier to keep a smaller spare server around to replace the failed one while you're fixing it.

Steve: Right on! Again and again, experience supports this idea that dividing your resources into many smaller servers rather than fewer larger servers produces the best performance levels, and, the greatest redundancy. For example, if you determine you will need (4) 500Mhz CPU’s and 2GB of RAM I would suggest two dual CPU machines with 1GB RAM over a single quad processor machine. In addition to contention for RAM and CPU there is also I/O to consider. When you have two servers supporting the same number of users then you also have two SCSI disk systems, two PCI buses, two NIC’s, two banks of L2 processor cache, etc. Of course, you need to balance this with hardware and software costs- it clearly become more affordable when you high, rather than low, user counts.  With low user counts you might add RAID to data partitions, additional NIC’s, more RAM, more L2 cache, etc. before adding an additional machine.

My closing thought on this whole issue is to “over-spec” wherever possible. When you look at the true costs of computing over time, the up front hardware cost is not the majority of where the money will be spent. I suggest being as generous as possible in this area and you will find a higher level of user satisfaction, reliability, up-time and room for growth in the future. Luckily, server hardware keeps getting faster and less expensive all the time!

:: LINKS ::

Windows 2000 Terminal Service Capacity and Scaling

:: ABOUT THE AUTHORS ::

Christa Anderson is a senior contributing editor to Windows 2000 Magazine and author and co-author of several books, including the forthcoming Automated Deployments and Scripted Management and Mastering Windows 2000 Server, both from Sybex. Email Christa at christa@thinclient.net

Steve Greenberg is the founder and President of Thin Client Computing in Scottsdale, Arizona. A leading expert in server based computing, he has designed mission critical solutions for various Fortune 500 companies. Email Steve at: steveg@thinclient.net


 

 

All material on this site is protected by copyright © 2005 Thin Client Computing, All Rights Reserved