Previous page

Next page

Locate page in Contents

Obtaining Disk I/O Statistics

The virtual machine disk I/O statistics are obtained using the PrlVm_GetPerfStats function. The function is a part of the PHT_VIRTUAL_MACHINE handle.

The PrlVm_GetPerfStats function obtains a handle of type PHT_EVENT. The objects referenced by PHT_EVENT handle can contain one or more PHT_EVENT_PARAMETER objects, each of which is used as a container for a particular type of performance statistics. Statistics are identified by a corresponding performance counter which name is also contained in the PHT_EVENT_PARAMETER container. The following disk I/O performance counters are available:

Counter Name

Description

PRL_IDE_READ_REQUESTS_PTRN

Total count of read requests to IDE controller.

PRL_IDE_READ_TOTAL_PTRN

Total count of bytes read through IDE controller.

PRL_IDE_WRITE_REQUESTS_PTRN

Total count of write requests to IDE controller.

PRL_IDE_WRITE_TOTAL_PTRN

Total count of bytes written through IDE controller.

PRL_SCSI_READ_REQUESTS_PTRN

Total count of read requests to SCSI controller.

PRL_SCSI_READ_TOTAL_PTRN

Total count of bytes read through SCSI controller.

PRL_SCSI_WRITE_REQUESTS_PTRN

Total count of write requests to SCSI controller.

PRL_SCSI_WRITE_TOTAL_PTRN

Total count of bytes written through SCSI controller.

PRL_SATA_READ_REQUESTS_PTRN

Total count of read requests to SATA controller.

PRL_SATA_READ_TOTAL_PTRN

Total count of bytes read through SATA controller.

PRL_SATA_WRITE_REQUESTS_PTRN

Total count of write requests to SATA controller.

PRL_SATA_WRITE_TOTAL_PTRN

Total count of bytes written through SATA controller.

Example

The following example shows how to obtain the virtual machine disk I/O statistics.

PRL_HANDLE hVm, hJob, hResult, hEvent, hPerfCounter;

// Obtain performance statistics.

// In this example, we are getting the total count of read

// requests to IDE controller by passing the corresponding

// performance counter name. The performance counter names are

// defined in the PrlPerfCounters.h header file.

hJob = PrlVm_GetPerfStats(hVm, PRL_IDE_READ_REQUESTS_PTRN);

// Wait for the job to complete.

PrlJob_Wait(hJob, 15000);

// Obtain the PHT_RESULT object from the job.

PrlJob_GetResult(hJob, &hResult);

// Obtain the PHT_EVENT object from the result.

PrlResult_GetParam(hResult, &hEvent);

// Get the PHT_EVENT_PARAMETER object containing

// the actual performance counter value.

PrlEvent_GetParam(hEvent, 0, &hPerfCounter);

// Get the performance counter value.

PRL_UINT32 nValue;

PrlEvtPrm_ToInt32(hPerfCounter, &nValue);

// Process the nValue here...