Adjusting the VMware IOPS limits

Last Updated : May 19, 2020 |

Input/Output Operations Per Second (IOPS) is a measurement of the traffic between a virtual machine and the disk storage it is using.

The following factors should be considered when assessing the IOPS aspect of the virtual platform:

  • The number of virtual machines running on an ESXi host should not exceed the IOPS of the disk storage divided by 30. For example, a datastore with an IOPS of 150 should only support up to 5 virtual machines.

  • The total maximum IOPS of all the virtual machines must be within the IOPS capacity of the datastore. To compute how many IOPS the storage supports, you need to know the hard disk type, RAID configuration, number of drives, connection method, and so on. See VMware Knowledge Base.

  • By default no IOPS limit is set for each virtual machine disk. However, an IOPS limit can be set. If limits are set, it is important to understand how the limits are used for all virtual machines using the same datastore. The limits are aggregated to set an overall limit for the datastore as follows:

    • Example: 4 virtual machine disks using the same datastore and each disk set to 100 IOPS As each disk is limited to 100, the total IOPS for the datastore is 400. If disks 1, 2 and 3 are currently using 10 IOPS each, disk 4 could use 370 IOPS without being restricted.

    • Example: One disk set to Unlimited (the default), all other disks are set to 100 IOPS As one of the disks is set to unlimited, the potential IOPS for the virtual machine disks using that datastore are also unlimited.

Exceeding the IOPS capacity of the datastore will lead to unpredictable results for virtual machine applications using that storage. Whilst a maximum IOPS limit can be applied to each virtual machine disk, that approach is not recommended for IP Office virtual machines as once again it will lead to unpredictable behavior.

Warning:
  • The following processes can be used on a new virtual machine that has not been powered on/started.

  • To perform the same actions on an existing virtual machine, it must first be powered off/stopped before making the adjusting and then powered on/started again. That will interrupt all services provided by the virtual machine.