We initially discussed server sizing back in Chapter 5. Server sizing and performance tuning are closely related. The main difference between them is that server sizing is about choosing the proper hardware, and performance tuning is about making configuration changes that affect how efficiently the hardware is used. In this chapter, we'll look at several techniques and resources that you can use to tune your servers, their applications, and the network.
What is Performance?
Although an odd question to ask right off the bat, this is an important one to help frame the context of what you can reasonably expect to achieve. Simply stated, performance (in this case) is getting expected results based on a fixed set of inputs. Terminal Servers perform well when they meet your expectations. Whether you have 10, 100, or 1,000 users per server is not as important as knowing that you'll reliably have 10, 100, or 1,000 users per server.
All Terminal Server performance problems really fall within one of two categories:
- You want something to happen faster.
- You want more of something.
There are an infinite amount of things that people want to happen faster in Terminal Server environments. They want faster logons, faster application response times, and faster screen updates.
Think about the speed of different activities on your Terminal Servers. Do you have dialog boxes that you want to pop up in one-tenth of a second instead of one-half of a second? Do you want to cut the logon time from thirty seconds down to ten seconds?
Instead of wanting things to happen faster, perhaps you want more of something. In most cases, people want to accommodate more users per server.
Approaching your Performance Problem
Before you even begin to assess the performance of a Terminal Server, it's important to understand that every Terminal Server has a limit. This limit varies from company to company, but is based on applications, user profiles, hardware, the network, and countless other factors. There are plenty of "finely tuned" environments in which only 25 users can be accommodated on a server. Then again, there are plenty of environments with 350 users per server.
Once you accept the fact that you'll never fit 750 users on a dual-processor server, the next step is to define your problem. What's the real performance problem in your environment? If you have a server that is slow with 100 users, does that mean that your server is not tuned properly, or does it mean that you have too many users on it? From a performance standpoint, those are just two different ways to look at the same problem.
Given that all Terminal Server performance issues can be reduced to the desire for "more" or "faster," your particular performance issue is likely to be one of the following:
- Logons are too slow
- The overall environment is too slow
- You want to get more users on your server
- The server erratically hangs, spikes, pauses, freezes, and/or slows
You might experience multiple (or all) of these problems in your environment, and quite often they are related. For this reason, it's recommended that you read through this entire chapter before customizing your strategy for addressing specific performance issues. Let's begin by troubleshooting slow logons.