Ticket #5628 (new enhancement)
Opened 4 years ago
Suggestion: Add a "minimise writes" option to Windows Guest Additions
|Reported by:||Donuts||Owned by:|
When using dynamically-expanding hard disk files, it's really useful to reduce the amount of writes performed by the guest OS. That reduces the size of the VDI file on the host and improves performance. Doing that is also useful for use when the host drive is a flash-based SSD.
For example, optimisations performed automatically by Windows XP and later move the location of data on the disk for faster access. That would most likely actually reduce performance, as well as waste disk space, when using a dynamically-expanding VDI in VirtualBox.
When installing the Windows guest additions, it would be very helpful to be presented with an option to adjust the various settings automatically. Performing the changes manually takes time and it's easy to forget one or more adjustments, especially when setting up several Windows VMs. And typically, installing the guest additions is the first thing done after installing the OS in a VM. Perhaps show checkboxes to either apply all settings, or allow the user to select which.
Some changes which reduce the amount of disk writes:
- Disable the NTFS change journal. That can be done using the command fsutil.exe usn deletejournal C:. See http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/fsutil_usn.mspx
- On Vista, disable SuperFetch.
- Disable the Windows XP prefetcher.
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters] "EnablePrefetcher"=dword:00000000 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction] "Enable"="N" [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\OptimalLayout] "EnableAutoLayout"=dword:00000000
- Using the Microsoft dskcache.exe tool, enable the "power protected" write cache option. Get that via http://support.microsoft.com/kb/Q811392
Use it like this: dskcache.exe +p c: There is probably a registry key which can be changed, instead of having to use that Microsoft program.
- Disable hibernation in the guest OS (optional, but there isn't much need for it and doing that prevents the user accidentally hibernating and causing a lot of data to be written to disk).
- Disable System Restore (optional)
- Disable 8.3 filename creation on NTFS partitions: fsutil.exe behavior set disable8dot3 1
In Windows 2000 and earlier you need to change a registry value: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem] Change NtfsDisable8dot3NameCreation from 0 to 1.
- Disable updating file last-accessed timestamps: fsutil.exe behavior set disablelastaccess 1
- Disable indexing on all drives