The Unsung Windows Server 2008 Feature: Parallel Session Creation
It was enough to attend Michael Thomason’s packed session at BriForum “Decreasing Windows Login Time: I have 5-7 Second Login Time, You Can Too!” (which was excellent by the way), to realize how painful the problem of lengthy Terminal Server logons really is. This is not so surprising when you consider the impact that lengthy logons can have on user experience. People who were used to clicking a local application icon and being able to start working in a matter of seconds are suddenly faced with startup times that can sometimes be measured in minutes when using published applications. And this from the shiny new SBC solution which is supposed to make things better!
Turns out that one of the reasons for these lengthy logons is that Windows session creation is a serial operation. This means that on Windows Terminal Servers only one session creation take place at any given instant, while all the others have to wait in line. To understand the consequences of this design consider an organization that utilizes 30 Terminal Servers to support 600 concurrent users. If the session creation time for this system is 30 seconds this means that at best 60 users can logon within a period of 1 minute. In other words, it cannot take less than 10 minutes for all 600 users to logon, assuming optimal resource utilization. In reality it will probably take much longer.
Moreover, this is one of those interesting situations where 64bit computing can actually make things worse instead of better. A 64bit Terminal Server will probably be able to support more concurrent sessions but it may do nothing to improve logon time. So if thanks to 64bit Terminal Services it becomes possible to reduce the farm size to, say, 10 servers, but the session creation time remains the same at 30 seconds, the duration for all 600 users to logon increases to 30 minutes!
Turns out that Windows Server 2008 has a cool new feature which Microsoft introduced at WinHEC 2007: Parallel Session Creation. Thanks to this feature (which apparently was introduced in Vista), Windows Server 2008 can initiate at least four sessions in parallel, or even more if a server has more than four processors. So, for the example described above, logon time for all 600 users can be reduced to under 2 and a half minutes for the 32bit servers scenario, and to under 7 and a half minutes for the 64bit servers scenario.
Does this mean we will be able to enjoy faster logons once Windows Server 2008 is released? Unfortunately the answer is “not necessarily”. In the case of Citrix Presentation Server, for example, the Terminal Server logon may account for less than a quarter of the entire logon duration. Unless Citrix improves their own logon times and make sure that their own logon process can handle multiple sessions in parallel, users will not experience any noticeable improvements in logon times.
PowerTerm WebConnect is already designed in such a way that it does not adversely impact Terminal Server logon times. Logons to the Terminal Servers for both published desktops and published applications using PowerTerm WebConnect consume the same amount of time as a logon to a raw Terminal Server. I may be going out on a limb here but I will make the following promise: when we release PowerTerm WebConnect for Windows Server 2008 it will take full advantage of the new Parallel Session Creation feature for faster logon times.