I think it would be safe to say that Shared Cache in App-V 4.6 was not the most popular solution for reducing the impact of App-V cache on client machines. From VDI to RDS, people didn’t want to duplicate the potentially huge sftfs.fsd cache file across their disks and consume unnecessary space. The Share Cache solution was a way around this however it could prove to be hard to manage when trying to update a centrally located cache file to which multiple machines had a handle to.
Shared Content Store in App-V 5.0 allows us to stream directly from a content source without having to stream the package to the local platform. The great thing is App-V 5.0 packages now use a flat file format and are no longer stored collectively in a single cache file, which means we no longer have the read only challenges we faced with the Shared Cache solution in App-V 4.6 when it comes to updating applications and replacing the cache.
By default when a App-V 5.0 package is published to the client it is stored in a flat file format in %PROGRAMDATA% as shown below where we can see a WinRar package:
You will notice the size on disk matches the file size, this package is currently cached locally on this machine.
However if we enable Shared Content Store we can choose not to hold these files locally and instead stream from the content source directly. We can enable this setting during installation by using the following switch for installation: appv_client_setup.exe /SHAREDCONTENTSTOREMODE=1 /q
We can also enable this setting after installation by using PowerShell:
Set-AppvClientConfiguration -SharedContentStoreMode 1
Or we can use this simple registry change on the client as shown:
After a reboot of the client, next time we publish an application, it no longer downloads the entire package but instead creates NTFS pointers to the files which only consume 4KB on disk:
You will notice the change in icons for the App-V WinRar package files also indicating that these are sparse files which actually do not contain the data locally. The package will now utilise the original stream location for these files to run the application without ever having to download them locally to disk. A very small percentage of package files will always have to stay local however such as icons and metadata, this is called the publishing feature block, read more about it here.
So that is a quick overview of Shared Content Store in App-V 5.0, click here for a deeper look into how this great feature works.
Your exactly right in your thinking. Specifying the PackageSourceRoot setting as your root directory for your alternative content share will make sure your RDS machines stream from that location. If they are in SCS mode then they will work from that location exactly as above.
Hope that helps!
I would like to add some information. If you have packages loaded allready, you need to remove and add the packages.
If you change scs after installation, the common users are able to precache the applications. If you set scs during installation, the users arent able to precache applications.
Thanks for the additional info Roel, very useful observations.
We're install app-v version 5 into a stateless vmware view 5.2 instance running on UCS servers with 2.4tb of fusion I/O cards. App-V is in shared cache mode, the experience can be quite poor with start menu stutter for up to 2 minutes whilst it populates with around 10 app shortcuts. App performance varies from ok with minor delay to poor. does anyone know how to pre-stage/pre-cache 'hot' apps whilst leaving the rest to stream?
Pre-staging can be done by using the add-appvclientpackage command. Pre-caching can be done via the mount-appvclientpackage command. Then all you need is to publish the packages via your method of choice. Please let me know if that makes sense and more importantly if it improves your experience.
We're seeing some delay when building up the start menu as well as Jason describes (If I've understood his post correctly).
A user logs on and it takes up to 3 minutes before his applications are shown.
How can we speed this up? by pre-staging the applications?
Do we do this by running Powershell cmdlets?
Have you tried pre-adding the packages? This is done via the add-appvclientpackage command, this should speed up the time to publish substantially. The general speed of publish is definitely on our radar internally and I would be interested to know how much pre-adding the applications helps you speed the process up so please do let me know!
I just tried this but get an error stating that admin rights are required.
In our organisation, users don't have admin rights..
How can I get around this?
just to let you know that if we run the ps cmdlets, then the application is published in under 45 seconds.
Now all we need is a workaround that allows users to run them..
I am running Windows Power Shell V4.0 on Windows 7 SP1 Pro, is App-V 5 SP1 client supports Power Shell 4.0 yet?
I am facing publishing issues on the client with POS V4.0, I tried the same packages on a client with POS 3.0 and everything is working fine.
We do support PowerShell 4.0. Can you provide examples of packages that do not publish? Is it only certain packages?
Thank you dear Thamim for your prompt reply,
I am having issues with Office 2010 X86 and Office365 on PowerShell 4.0 using App-V Client Standalone mode.
Other applications are working fine.
I am testing as you suggested with Standalone before using Full Infrastructure mode.
The Client OS is Windows Embedded 7 Professional x86 SP1 with POS 4.0.
I believe this might be to do with the platform rather than PowerShell version. Are you sure all other factors are the same? If you upgrade the working platform to PowerShell 4.0 does this stop working?
I tried with one package, if we publish a package normally before launching the application the size of the .exe is around 190kb. i.e., when published futere block is loaded. if we publish a package after giving /SHAREDCONTENTSTOREMODE=1, the size of the .exe file is 4kb. what makes the difference. both are published future blocks only