For more information about the VMware Management Interface, go to www.vmware.com/support/esx2/doc/.


 

Disk Bandwidth Management
Disk Bandwidth Management

ESX Server provides dynamic control over the relative amount of disk bandwidth allocated to each virtual machine. You can control disk bandwidth separately for each disk. The system manages the allocation of disk bandwidth to virtual machines automatically based on allocation parameters and system load. This is done in a way that maintains fairness and tries to maximize throughput.

You may specify initial disk bandwidth allocation values for a virtual machine in its configuration file. You may also modify disk bandwidth allocation parameters dynamically using the VMware Management Interface, the procfs interface on the service console or the VMware Scripting API.

Reasonable defaults are used automatically when you do not specify parameters explicitly. Information about current disk bandwidth allocations and other status is available via the management interface, the procfs interface on the service console and the VMware Scripting API.

Allocation Policy
Allocation Policy

ESX Server uses a modified proportional-share allocation policy for controlling disk bandwidth per virtual machine. This policy attempts to control the disk bandwidth used by a virtual machine to access a disk while also trying to maximize throughput to the disk.

Disk bandwidth shares entitle a virtual machine to a fraction of the bandwidth to a disk. For example, a virtual machine that has twice as many shares as another for a particular disk is entitled to consume twice as much bandwidth to the disk, provided that they are both actively issuing commands to the disk.

Bandwidth consumed by a virtual machine is represented in consumption units. Every SCSI command issued to the disk effectively consumes one unit by default and additional units proportional to the size of the data transfer associated with the command.

Throughput to the disk is maximized through the use of a scheduling quantum for disk requests from a virtual machine to a disk. A virtual machine is allowed to issue a number of requests to a disk (the scheduling quantum) without being preempted by another virtual machine. The issuing of a multiple requests without preemption is applicable only if these requests access sequential sectors on the disk.

Configuration File Options
Configuration File Options

You may edit the configuration file using a text editor on the service console or through the management interface.

To edit configurations parameters in the management interface, complete the following steps.

  1. Click the arrow to the right of the terminal icon and select Configure Options in the Virtual Machine menu.
  2. In the Options page, in the Verbose Options section, click here.
  3. Click Add to add a new configuration parameter or click in the text field to edit an existing parameter.
  4. Click OK.

If you edit a virtual machine's configuration file by hand, use the following formats to control disk bandwidth allocation for the virtual machine.

scsi0:1.name = <fsname>:<diskname>.dsk
This is the standard format for specifying the VMFS file underlying a virtual disk.

sched.scsi0:1.shares = <nshares>
This configuration option specifies the initial disk bandwidth share allocation for a virtual machine for the disk scsi0:1 to be <nshares> shares. The valid range of values for <nshares> is 1 to 100000, enabling a large range of allocation ratios. If the number of shares for a disk is not specified, the default allocation is 1000.

Note: It is possible for a configuration file to have multiple lines specifying the number of shares. If this happens, the value specified in the last of those lines is used.

Configuration File Examples
Configuration File Examples

scsi0.virtualdev = vmxbuslogic
scsi0:1.present = TRUE
scsi0:1.name = rootdiskfs:rh6.2.dsk
scsi0:1.mode = persistent
sched.disk.scsi0:1.shares = 800

scsi0:2.present = TRUE
scsi0:2.name = scratchfs:scratch1.dsk
sched.disk.scsi0:2.shares = 400

In the example above, the first four lines in the first group and the first two lines in the second group are present in the configuration file before you make your changes. The final line in each group is the added line to specify the disk bandwidth allocation.