Do note that the disk requirement for the latest generation of Windows operating systems are extremely heavy. As usual for “minimum” requirements, the recommendation of 32GB for system partitions is far too small.† Perusing Microsoft’s MSDN forums lends credence to the common recommendation of 50-60GB for the system partition.
The biggest contributor to the problem is the notorious winsxs directory. Microsoft’s brute force “solution” to DLL hell was to just keep a copy of every single old version of a file. Every service pack, security patch, or other update retains every old version of every file. It adds up, and quickly.
Unfortunately winsxs cannot be moved or files trimmed from the directory. Reportedly one shouldn’t even compress the directory, though I normally compress C:\ on virtual machines and haven’t experienced troubles — yet.
Microsoft MVP moderators on the MSDN technical forum uniformly state that the solution is to get a bigger hard drive. SSD and virtualization users are considered “early adopters” and just have to lump it.
Microsoft’s justification is that cost per gigabyte has continued to drop over time. While this is true for dedicated physical servers, virtualization is widespread these days, and cost per GB does not drop. In fact, costs can scale non-linearly. Doubling the amount of disk space on a virtual machine can triple or quadruple monthly hosting costs.
Now it is true that I’ve become jaded over the years when it comes to Microsoft’s lack of finesse in their software engineering practice, but I still shake my head over this knuckle-headed architectural decision. However, if Microsoft technology is chosen, we have to bow to Redmond’s whims.
It goes without saying that this additional hidden cost for virtualization users makes LAMP stacks all the more attractive.
† My own anecdotal experience is that on one particular server, the best I can do without getting drastic is 3% free space on a 30GB partition.