Conventional wisdom says that when you have SSD or Flash storage you don’t need to defragment. While that may be true on a laptop it is not the case in a virtual environment.
The benefit of defragmentation in a virtual environment comes from the reduction in the number of commands between the guest systems and the storage controller. Windows “saves” a file by referencing chunks of logical address space reserved for the file. If it reserves 100 chunks of space it takes 100 SCSI commands to move that file to the controller. Defragmentation consolidates the 100 chunks into a single chunk of space and only one (1) SCSI command is needed. If the system only has to process 1 command instead of 100 commands you would think operations would be faster even with Flash storage.
To test our hypothesis this we set up a test with 2 identical VMs backed by Flash storage. Disk 1 had a fragmented 3GB file and Disk 2 had the same 3GB file but it was contiguous. We simply read the file from end-to-end and captured the results with the vCenter Performance Charts utility. The results were surprising across the board on the data store, the VMDK and the physical disks. We measured
|• 23% improvement in Read Rate on the data store
• 21% improvement in Read Requests per Second on the data store
• 21% improvement in Commands Issued on the VMDK
• 23% improvement in Read Rate on the VMDK
• 27% reduction in Read Latency in milliseconds (ms) on the disk
• 21% improvement in Read Requests per Second on the disk
• 25% reduction in Outstanding Read Requests
Defragmentation reduces the SCSI command workload between the guest and the controller which in turn reduces disk I/O. These stats show that reducing this workload improves disk read performance even with Flash storage.
To see the full report with the vCenter Performance Charts go to :