First the problem. We have several packages that their total size should be less than the disk space it is consuming on our D:\. We started running out of disk space earlier than anticipated so we investigated.
We packaged VMWare vSphere Client and included multiple versions of vSphere that maximizes the ability to connect to the servers/vCenter versions while minimizing the number of vSphere clients in the package. In total, we sequenced 3 vSphere installs in one package. The total package size is:
0.98 GB (1,054,613,510 bytes)
When we rename the .appv to .zip and extract the package the total size is:
1.71GB on the AppVData for the extracted file. 1.83GB used space on disk.
But, when we mount the .appv package using AppV the total size is:
1.71GB on the AppVData folder, but 2.25GB used space on disk. A discrepancy of ~400MB. With 10 packages that could be 4GB of wasted space across 60 Citrix servers it adds up fast.
So... Where is this missing space and why does AppVData not report it correctly? Well... it turns out it does report the used space correctly in Windows 8 / 2012. The AppVData folder for the mounted application actually shows that it's 2.2GB when mounted on a Windows 8 / 2012 box. Why the difference? It turns out that when Appv 5 mounts applications it is mounting them using a 64KB allocation size. In Windows 8 / 2012 when you get properties on a file in the mounted package it shows that it's 64KB used on disk. On Windows 2008 / 7 it shows the file size used on disk, then it goes to the allocation size:
Windows 2008 / 7 file sizes are incorrect for mounted packages |
19,045,400,576 bytes free before the 2,951 byte file is deleted, 19,045,466,112 bytes after.
19045400576 - 19045466112 = 65536 bytes.
So, in the end, it turns out that AppV 5 utilizes 64KB cluster size even if the allocation size on the disk is 4KB. I'm not sure if having mismatched cluster sizes impacts the performance of AppV but the Microsoft support personnel implied that it could. For AppV 5 you'll want to reduce the number of small files in your AppV packages to as few as possible to limit this space sucking overhead. The missing space is "sparse" files, but fully mounted I wouldn't expect to have any sparse files. So AppV is using sparse files to ensure a 64kb allocation size.
Allocation Report:
Within these files there are:
Compressed : 0
Total allocated : 0 bytes
Total size : 0 bytes.
Savings : 0.00 %
Sparse : 9106
Total allocated : 2318139392 bytes
Total size : 1838549977 bytes.
Savings : -26.09 %
Encrypted : 0
Total allocated : 0 bytes
No comments:
Post a Comment