The ultimate guide to Windows logon time optimizations, part #9

Everything you need to know about Windows logons in one blog series continues here!

I have threatened on several occasions now to do a follow-up to my previous article on Windows logon times which incorporates the findings from my “logon times masterclass” that I have presented at a few events. The time has come for me to turn these threats into reality, so this series of articles and accompanying videos will explore every trick we know on how to improve your Windows logon times. As many of you know, I work predominantly in Remote Desktop Session Host (RDSH) environments such as Citrix Virtual Apps and Desktops, VMware Horizon, Windows Virtual Desktop, Amazon Workspaces, Parallels RAS, and the like, so a lot of the optimizations discussed here will be aligned to those sorts of end-user computing areas…but even if you are managing a purely physical Windows estate, there should be plenty of material here for you to use. The aim of this is to provide a proper statistical breakdown of what differences optimizations can make to your key performance indicators such as logon time.

This series of articles is being sponsored by uberAgent, because the most important point to make about logon times is that if you can’t measure them effectively, then you will never be able to improve them! uberAgent is my current tool of choice for measuring not just logons (which it breaks down into handy sections that we are going to use widely during this series) but every other aspect of the user’s experience. All of the measurements in this series are going to be done via uberAgent, and as it comes with free, fully-featured community and consultants’ editions, there’s absolutely no reason that you can’t download it and start using it straight away to assess your own performance metrics. I’ve written plenty about uberAgent on this blog before, and I stand by it as the best monitoring tool out there for creating customized, granular, bespoke consoles that can be used right across the business. I’ve recently deployed it into my largest current client, so you can be sure I am putting my money where my mouth is – if it didn’t do the job, I wouldn’t have used it for my customers, simple as. It now features full Citrix Cloud integration and a “user experience” score to tell you where your users are having issues, so go and try uberAgent right now – you won’t regret it!

Part #9 – profile sizes

A slight addendum to part 5 of the logon times series today – because we’ve had a few questions asking about the effect of profile size on logon times. Traditionally, people seem to think that smaller profiles are leaner, and henceforth load faster. Let’s explore that belief a little bit.

There are many factors to take into account when it comes down to profile size, and there are probably too many to cover in a single article. As usual, I can only suggest that you use a tool (like uberAgent ๐Ÿ˜‰ ) to measure the impact of any change you make in your own environments. We’ve tried to cover a cross-section of the variables in this article, but as I said, there are far too many to be comprehensive.

The scenarios we have tested are shown below:-

  • #1 – a “small” profile, between 100MB and 200MB in total, composed mainly of small files and folders, with no Folder Redirection
  • #2 – a large profile containing a 3GB ISO file on the Desktop, and 3.8GB of Chrome cache in %LOCALAPPDATA%, composed of a mix of large and small files, with no Folder Redirection
  • #3 – a large profile containing a 3GB ISO file on the Desktop, and 3.8GB of Chrome cache in %LOCALAPPDATA%, composed of a mix of large and small files, with the Desktop folder redirected to a network share
  • #4 – a large profile containing a 3GB ISO file on the Desktop, composed of large files, with the Desktop folder redirected to a network share
  • #5 – a large profile containing a 3GB ISO file on the Desktop, composed of large files, with no Folder Redirection
  • #6 (Citrix UPM only) – a large profile containing a 3GB ISO file on the Desktop, and 3.8GB of Chrome cache in %LOCALAPPDATA%, composed of a mix of large and small files, with no Folder Redirection, but with the UPM “profile streaming” options activated

We opted to test scenarios 1-5 against a standard Microsoft roaming profile, an FSLogix Profile Container, and Ivanti User Workspace Manager. This gives us a mix of a “standard” file-based management tool, a container-based tool, and an “injection” tool that is file-based but adds the files on-demand rather than at logon. We also tested scenarios 1-6 against Citrix User Profile Management, to get the stats for another file-based tool but additionally to see what difference the “profile streaming” function made. We did both sets of tests against Windows 10 21H1 and the latest iteration of Windows Server 2019 RDSH.

We also tried to mix up using lots of small files within the profile, and using one big file, to see if there is any major difference observed when loading many small files as opposed to one large one.

Naturally, it goes without saying that both Citrix UPM and Ivanti UWM can also do container-based rather than file-based profiles if required, before anyone pulls me up on that.


So let’s have a look what we got out from these tests. Today, because we have quite a lot of data, we have simply exported the results into Excel graphs rather than presenting the raw figures in their entirety. Each “scenario” from above is colour-coded, and the logon times are presented in seconds.

Microsoft roaming profiles

All statistics provided by uberAgent
All statistics provided by uberAgent

You can see straight away the major stumbling block of a “traditional” file-based solution – large volumes of files and data (scenarios #2 and #3) cause a MASSIVE uptick in logon time. On Windows 10, you’re talking way over 10 minutes in these situations. Folder Redirection doesn’t help much, as the huge volume of files being copied over the network is bloating the logon time incredibly.

If you’re just dealing with single large files, though, the network copy time (scenario #5) is, whilst still problematic, nowhere near as bad. And when comparing scenario #5 with #4, you can see the potential benefits of Folder Redirection.

Given the huge discrepancies here, it’s clear that large volumes of small files, in an old-style file-based profile management situation, has a horrendous impact onto logon time KPIs.

Citrix User Profile Management

Now let’s look at Citrix UPM. As I said, we’ve added an extra scenario (shown in green) which gives us the statistics for a large, non-redirected profile but with the “profile streaming” options activated in Citrix UPM.

All statistics provided by uberAgent
All statistics provided by uberAgent

Now UPM still performs pretty poorly in scenarios #2 and #3 – but nowhere near as badly as a traditional roaming profile. This is interesting, because the principle is pretty much the same. It is clear that some of the default features of UPM must perform some kind of optimization. Particularly on Windows 10, the numbers are still poor, but not even close to the level of poor exhibited by roaming profiles.

Profile streaming seems to make a considerable difference, though, so if you’re using UPM, both the settings “Profile streaming” and “Enable profile streaming for folders” (which is new in UPM 2103) are very much worth enabling. On the same sized profile with 3.8GB of Chrome cache, they make a difference of at least 50%, which is excellent.

FSLogix Profile Container

Now let’s look at a container-based solution.

All statistics provided by uberAgent
All statistics provided by uberAgent

Now you may think, at first look, that there are big discrepancies here – but I’d like to draw your attention to the increments on the x axis. For roaming profiles, we had 100 second increments, for UPM, it was 10 second increments – but for FSLogix the increments are in 0.5 second gaps. For both Windows 10 and Server 2019, the difference between the best- and worst-performing scenarios is within 3 seconds.

The conclusion is clear – whether you have large or small profiles, lots of small files or big ones, or both, a container-based solution delivers your logon in much the same time. There’s little or no change dependent on the size of the files within – or even if you are doing Folder Redirection.

Ivanti User Workspace Manager

Finally, let’s look at Ivanti. The main difference with Ivanti is that the parts of the profile are only loaded on demand – so the files for Chrome, for example, won’t be loaded at logon, but when Chrome itself is launched.

All statistics provided by uberAgent
All statistics provided by uberAgent

It’s probably worth mentioning that performance of the Ivanti solution depends somewhat on the specification of the database and web servers delivering the profile bits, and in my lab they aren’t specced particularly highly. That probably accounts for the longer base figures. However, as expected, loading 3.8GB from the Chrome cache has little effect on the logon time – simply because this isn’t done at logon, and is streamed when required. Conversely, Ivanti appears sensitive to Folder Redirection (in that it’s a net benefit) in these tests – and that’s because we were redirecting the Desktop, which does contribute to logon time.


So, what are the main points we’ve learned from these tests?

  • If you’re using file-based profile management, then lots of little files have far more impact than single big files.
  • Large files will also negatively impact a file-based profile management tool, just not as badly.
  • Container-based tools give pretty much the same results, regardless of the size of the files within them.
  • With Citrix UPM in file-based mode, adopting the “Enable profile streaming for folders” feature can make a BIG difference to your logon time
  • Redirection out of the profile can make a difference, but there will usually be knock-on effects into other areas of performance, so use it carefully, and ideally not for high volumes of small files.
  • The size of the profile is only a consideration for container-based solutions when thinking about storage consumption – in terms of logon performance, it makes very little difference.

Overall, whether you choose a file-based or container-based solution should determine whether you care particularly about the size of your profiles, because only in file-based situations will it impact the logon KPI. Of course, you could choose to blend the two in certain environments – which is something we will talk about in an upcoming post.



  1. Hi James,

    It’s always a pleasure to read your blog articles because you provide us with information that we hardly can find elsewhere and God (or any other higher level entity you might worship) bless you for that ! In that frame, do you have any good recommendations for a FSLogix profile container implementation ? I’m planning to bring this product into our CVAD 1912 LTSR CU3 environment mainly in the aim to solve the different type of issues you can face with non-persistent VDAs (Win10 first logon delay, Outlook, Teams, OneDrive, Onenote cache reconstruction). Your advices will be welcome as usual !

    Have a great day

    Kind regards


    1. Profile Container implementations should be pretty simple, assuming you don’t want replication. The two biggest questions you will have are a) do I want to replicate?, and b) how big should I size the containers? The answers to those will drive a lot of other questions (such as OneDrive cache, Outlook OST file size and cache level, container split/not split, and all of the attendant settings). A few things I do recommend – use Restricted Groups to manage the FSLogix local groups, always use dynamic sizing, always change the naming convention so you get the username first, etc.

  2. Interesting research JR, itโ€™s seems technology is moving faster but logon duration is not keeping up.

Leave a Reply

Your email address will not be published. Required fields are marked *