Should AppData be Redirected or Left in the User Profile?
|
by Helge Klein on 05/31/2010 | 16 Comments | 11,924 Views
|
Redirecting AppData from the user profile to a folder on the network may significantly improve logon speed. Is enabling AppData redirection a no-brainer, then? Not really, because it often comes at a price: performance.
Aaron Parker brought this topic to my attention when he tweeted: "I really wish ppl would stop redirecting AppData. It's bad news". As he added later, he was referring to performance.
Folder redirection certainly has its pros and cons. In order to decide if redirection is good for you, you need to evaluate each of them. Here is what I came up with.
Pro AppData Redirection
- Smaller profiles. That means faster logons since less data needs to be copied. Logoffs benefit to some extent, too, but not as much as logons, because with roaming profiles only changed files are copied back to the file server during logoff.
- Data sharing between sessions. Typically AppData is redirected to one folder per user, and the same folder is used from multiple sessions concurrently. That means if you run application X in session 1 and it stores a file in AppData, that file will immediately be visible to another instance of application X in session 2.
- Overall less storage required. In siloed environments or any network with multiple profiles per user, AppData exists only once per user instead of once per profile. This may save up to several dozen megabytes per user.
Con AppData Redirection
-
Performance on the file server. RDS sessions may hit the file server - hard. Most (if not all) developers assume they are storing data on a local disk if they read from or write to AppData. Since local disks are pretty tolerant performance-wise (at least compared to a network) a developer may not even notice that his application causes far more IOs than necessary. Some common mistakes include: reading/writing files in many small chunks, and reading/writing the same files over and over again.
In other words, applications from your RDS sessions will create significant additional load on your file servers. This is not a problem if the file servers have enough spare capacity, but it may overload them if already near capacity without AppData redirection.
- Performance on the client / terminal server. Perpetual network access slows applications down. Applications have to go and fetch each file from the network which is often a lot slower than getting data from a local disk. Not only do programs take longer to start up because of this, the network lag may also lead to noticeable pauses during application execution.
- Concurrency issues. Suppose you have an application that prevents multiple instances of itself from running because its developers knew it would not work, maybe because some file in AppData is locked exclusively by each instance. This works well on a single machine, but there is no way instance 1 on machine 1 can prevent instance 2 on machine 2 from starting. Both instances would then use the same data which might have unforeseen consequences, such as data loss.
- Multi-version issues. Suppose you have two versions of the same application in two different silos. Both versions use the same config file, but store data in a different (and incompatible) format. What happens if version 1 in silo 1 creates a file in AppData and version 2 in silo 2 later tries to open it, assuming it is a version 2 file? Anything might happen, up to data loss and application crash.
What Do You Think?
These are some pros and cons that came to my mind. I freely admit some of them are more relevant than others. But more importantly, what are your thoughts? Should AppData be redirected or not? Does it work well, or is it a major PITA? Please let us all know what you have learned.
- ‹ previous
- 125 of 156
- next ›
+++ Your opportunity +++ Use Profile Migrator 2, the new sepago product that makes migrating user personalities between different platforms a breeze.! Download your free version now!
16 responses for "Should AppData be Redirected or Left in the User Profile?" |
![]() |
Helge Klein IT-Architect Blogs about Windows, Terminal Services and other things Personal Profile Personal Blog RSS-Feed ![]() |
|
Most viewed
| 128,795 Views |
Where is the Hosts File on Windows x64? |
| 74,247 Views |
Deleting a Local User Profile - Not as easy as one Might Assume |
| 45,408 Views |
Printer Driver Isolation in Windows 7 and Server 2008 R2 |








In het Cons I'm missing
In het Cons I'm missing compatability issues.
For example: if you use Thinapp tp virtualize your applications and you have the sandbox (user personalization of the virtualized app) in users Appdata (default location) then Installfree doesn't support redirection of the Appdata folder.
I'm one of those "do not
I'm one of those "do not redirect appdata" guys, but I'm not certain how long I can remain as such. AppData really squeezes you between a rock and hard place. Kick in 08 R2 and App-V 4.6 and it's a fast gliding sippery slope towards redirection with all of it's unwanted uginess and gore :)
The issue around AppData
The issue around AppData redirection really has to do with how many appturns a given application makes to the AppData folder. I've had applications that probe a file in AppData between screen changes. Clearly this is a dumb developer practice, but it's the type of things we must deal with. My personal preference is to avoid AppData redirection at all costs. That being said, things like Java Cache, ClickOnce, etc make it really hard to force a full download at logon and delta upload at logoff. The ideal scenario (IMHO) is file streaming as in UPM 3.0. It's the ideal solution for AppData. Download only what you need when you need it and then use it locally until write commit can be performed. There are clearly multi-session challenges, but I think in the long run it's worth it.
Shawn
I definitely come down on the
I definitely come down on the side of do not redirect appdata. The reason being, that you can prepare for the disadvantages of not redirecting.
Whereas the disadvantages of redirecting appdata are out of your hands and into the hands of the application developers.
If you have many applications in your enterprise the update/upgrade cycle is almost constant. AT any point, a new application, a bug in an existing app or a badly written new version could completely change your fileserver load or application performance. These issues can then be very hard to troubleshoot.
With so much data now going into this space a 3rd party profile solution is becoming mandatory (pun unintentional), I like both UPM3 and the ex-RTO virtual profile solution.
May be a dumb question, but
May be a dumb question, but redirecting AppData also implies (if we do not change the default location) redirecting "AppData\Local\Microsoft\Outlook", which IMHO is not supported, right?
In this context AppData means
In this context AppData means the folder "AppData\Roaming". This may sound confusing but has a reason. The location of AppData\Roaming is stored in the registry value called AppData:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\AppData
By default, on Windows 7 that points to:
%USERPROFILE%\AppData\Roaming
Thx, well then I see more
Thx, well then I see more advantages than disadvantages in redirecting AppData. Hence in a virtualized env we have to (should) decide whether to roam or not, I'd roam...
emba
The "local" don't get
The "local" don't get redirected, only the roaming part. So your PSTs or OSTs are stored locally, wether or not you are using redirection.
In all the deployments I have
In all the deployments I have done, it is a simple choice. AppData always get redirected. The bloating of AppData is just not worth the login hit, espically from Site/Branch Offices.
Until UPM 3.0 becomes more reliabilty with Streaming the profile. My experience in the field is it is VERY unstable, uses too my resources and more often then not causes problems (Currently exclusion list is not working and the servers are taking a massive performance hit, espically with streaming applications).
I think the it depends on the
I think the it depends on the deployment. Are you referring to TS or VDI?
Does it matter whether we are
Does it matter whether we are talking about TS or VDI? Both are server-based computing and machines typically are stateless.
Check out points 3 & 4
Check out points 3 & 4 http://community.citrix.com/display/ocb/2010/06/23/BriForum+2010+Lessons...?
I agree with entirely Jim Moyle's post above. Added to that IMO Profile streaming is the only way to go because of the contstant application upgrades patches etc etc.
Great post. Let the conversation continue
Brian
One more not so abvious con
One more not so abvious con to add to the list - since Adobe Acrobat Reader v9.0 AppData redirection is no longer supported. From my experience with Server 2008R2 it will now either result in excessive CPU usage or the app crashing.
Do you mean
Do you mean this?
http://kb2.adobe.com/cps/404/kb404597.html
Sounds scary.
We had been using Application
We had been using Application Data redirection to try and keep the profile size down however in reducing the profile size the performance of the system became terrible (we were using Apps Streamed to Server). Citrix support answer was to disable AppData redirection. 2K3 R2, x86, XenApp5 Rollup 6
Great post - one scenario I
Great post - one scenario I would like to mention though.
Most of our users work from 1 machine. We redirect Home directories and Desktop photos videos etc - and as such see no need to run roaming profiles.
This keeps the data safe on the network - backed up etc.
As such we do not redirect app data either - as this has seen large volumes of network traffic. We simply run App Data local and as such it is not copied down at every logon as the profiles are not roaming.
Can anyone see anything bad in this? Most and I stress - most of the data in App Data whilst unique the user is by no means mission critical.
Craig