We're running an Application as a remote App using Remote Desktop on Windows server 2008, and we're getting situations where (after we've got about 40 people logged in) the server can freeze for a number of seconds (e.g. 20 seconds).

It doesn't look like the issue is caused by a lack of processor, or a lack of memory. The Application is quite disk heavy, but we've changed the drives from Raided SATA to a faster SSD Disk, and there has been no improvement.

The Application is a 32 bit App running in a 64 bit environment and 8GB of RAM.

The Application ran fine on RDP in Windows Server 2000 (up to 100 users) (Although it started to slow down as the server ran out of memory)

Looking at the Various Monitors, there is a peak in processor and network usage at the time of the freezes, although this seems to be more associated with the server catching its breath after it unfreezes.

We think it may be something to do with unloading/loading Hives as users log on, but this is a guess.

My questions are... - How do I find out what could be causing this error? - Anyone else experienced an issue like this - And how did you fix it?


5 Answers 5


In my experience, freezes are caused by either one of the following:

  • A high disk queue length (i.e. more I/O than a harddisk can handle)
  • Faulty drivers and firmware
  • A very high amount of network traffic
  • High memory or processor utilization

Notice that this is a list from most likely to least likely. I/O is very frequently a bottleneck. You can diagnose this using the performance monitor.

  • 1
    Is there a way of monitoring the disk queue length?
    – seanyboy
    May 9, 2009 at 12:18
  • 1
    Yes, you can use the performance monitor of Windows to do so. The disk queue lenght is one of the default counters that is present. A sustained disk queue length of higher than 2 per disk is frequently an indicater of an I/O botleneck. (e.g. if you have a RAID5 set of 4 disks the queue length should be less than 8) May 10, 2009 at 6:54

I've seen this and asked a related question (how-do-you-diagnose-a-server-temporarily-freezing).

Have a look at the following article. http://support.microsoft.com/kb/934330, it may help, but I still don't know exactly what is going on.


In the past I have run large terminal servers on the edge of my environment to control access of the persons using our system. We have had this issue from the time I was using Windows 2000 Terminal server. What I found to be the issue to be is when persons were logging in and out it would "freeze" the server for all involved. The "freeze" would get worse as more persons used the server.

I always blamed Novell's client 32 for the overhead, and eventually used the old zero administration kit to strip out functionality out of the users logon sessions till they were running as lean as possible.

I later had a terminal server using 2003, and no Novell and had the same issues. I found the roaming profiles to be the issue. The "freeze" would happen as it tried to load the new users profile over the network..Now it happens as we sync offline files from the home drives.

How do you fix it?

  • Limit the "pretty" features of windows.
  • Use more cache on these types of servers.
  • Keep the server defragged, although on SSD this is not always recommended
  • Keep the server patched
  • Limit the Anti-virus activity
  • Don't allow users to store locally to the server

Check and see if you've got something running that's doing a lot of disk accesses all at once. Had an issue with MySQL 5.0 completely decimating a 2008 Terminal Server for no apparent reason just last week, put MSSQL on there and it worked.

(I'm Not an M$ troll, and I didn't do this personally, my sup did. I just overheard him beating his head against the wall for a few days and later he told me this is how he "fixed" it)


Are your clients running on Vista? I had a similar issue with very capable Windows Server 2003 and 2008 boxes which had practically no load on them (I was the only one using them at the time).

It turns out Vista's TCP/IP stack has some receive window optimizations that actually cause poor performance with certain routers for apps such as RDP.

Here are some articles that explain this problem:

To summarize, try this:

netsh interface tcp set global autotuninglevel=disabled

If that does not turn out to be your problem, you can undo it using this:

netsh interface tcp set global autotuninglevel=normal

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .