Terminal Server 2003 Performance Troubleshooting

windows-server-2003windows-terminal-services

Let me get your thoughts on terminal server performance problems. The server hosts average 25 users which, after running some numbers, on average use 600MB memory with their main applications running (web browser, adobe reader, IP phone client). All users are on the same LAN as server. We constantly experience slow response and short session lockups. Combined CPU usage is on average 10%. What appears strange to me is that the system shows 29GB physical memory with 25GB of it free. The page file usage is about 50% averaging 9GB used.

Some server specs

OS: Server 2003 32bit Enterprise with /PAE flag
RAM: 32GB
CPU: 2xQuad Core @ 2.27Ghz
HD: RAID5 1.2GB

After doing basic troubleshooting using performance monitor it leads me to believe that the performance problems are caused by the 32bit OS limitation in addressing full 32GB of physical memory even though the /PAE flag is used.

Can anyone suggest something, troubleshooting steps that can lead to a more conclusive answer?

Thanks

Best Answer

There is a bit of a little-documented annoyance with PAE in windows. Despite the fact that the OS is now capable of allocating all the RAM in the system, some applications still won't use it.

With PAE enabled, each process is still limited to the limits of a 32-bit environment (4gb)... unless it is specifically built to make use of AWE (Address Windowing Extensions).

Despite all this "info" ... I don't think this is the problem you're running into. (do you have processes exceeding 4gb of RAM?) 9GB of paging to me is quite a lot excessive. Doubly-so when you take into account that this is a terminal server. That much disk-IO is bad for performance. As mfinni said, it is more likely that you're running into issues with your disk IO than memory issues. I've seen the exact same symptoms you describe, only to find out that indeed my disk-drives couldn't keep up with the work-load. There are a laundry list of reasons for excessive Disk IO and just as many solutions to the problem.

In my case, I discovered that the print-spooler service was allocating HUGE amounts of RAM (which was mostly dumped to the paging file). It turns out there is a long-standing problem in the print-spooler whenever printers are created/deleted.

(when printers created, memory is allocated for the driver. When they're deleted, the memory is not de-allocated. The result on a terminal-server with users logging in & out all-day-long is a print-spooler service with 2gb+ of allocated RAM... and most of it thrown to the page-file) Where possible, do not use RDP to share the printers.

There are many other hidden gotchyas when it comes to terminal-services and memory.

Related Topic