By default, vSphere provides a mechanism that creates scheduling queues for every virtual machine file. Each file, for example .vmdk, gets its own bandwidth controls. You can use the vSphere Client or the esxcli commands to turn off the mechanism.

This mechanism ensures that I/O for a particular virtual machine file goes into its own separate queue and avoids interfering with I/Os from other files.

Edit Per File I/O Scheduling in the vSphere Client

The advanced VMkernel.Boot.isPerFileSchedModelActive parameter controls the per file I/O scheduling mechanism on VMFS and NFS 3 datastores. On the ESXi host, the mechanism is turned on by default. You can turn off the mechanism using the Advanced System Settings dialog box.

If you turn off the per file I/O scheduling model, your host reverts to a legacy scheduling mechanism. The legacy scheduling maintains only one I/O queue for each virtual machine and storage device pair. All I/Os between the virtual machine and its virtual disks are moved into this queue. As a result, I/Os from different virtual disks might interfere with each other in sharing the bandwidth and affect each other's performance.

Note: Do not deactivate per file scheduling if you have the HPP plug-in and the latency sensitive threshold parameter configured for high-speed local devices. Turning off per file scheduling might cause unpredictable behavior.

Procedure

  1. In the vSphere Client, navigate to the ESXi host.
  2. Click the Configure tab.
  3. Under System, click Advanced System Settings.
  4. Edit the value of the VMkernel.Boot.isPerFileSchedModelActive parameter.
    Option Description
    True Turn on the per file scheduling mechanism. By default, the parameter is activated.
    False Deactivate the per file scheduling mechanism.
  5. Reboot the host for the changes to take effect.

Use esxcli Commands to Edit Per File I/O Scheduling

You can use the esxcli commands to change the I/O scheduling capability for VMFS, NFS 3, and NFS 4.1 datastores on your ESXi host. The capability is turned on by default.

Prerequisites

Install ESXCLI. See Getting Started with ESXCLI. For troubleshooting, run esxcli commands in the ESXi Shell.

Procedure

  • To set or edit per file I/O scheduling, run the following commands:
    Option Description
    esxcli system settings kernel set -s isPerFileSchedModelActive -v FALSE Turn off per file I/O scheduling for VMFS and NFS 3.
    esxcli system settings kernel set -s isPerFileSchedModelActive -v TRUE Turn on per file I/O scheduling for VMFS and NFS 3.
    esxcli system module parameters list -m nfs41client Display the current status of NFS 4.1 file based scheduler.
    esxcli system module parameters set -m nfs41client -p fileBasedScheduler=0 Turn off file based scheduler for NFS 4.1.
    esxcli system module parameters set -m nfs41client -p fileBasedScheduler=1 Turn on file based scheduler for NFS 4.1.