How to change the DMP I/O policy and monitor for performance

Article: 100004185
Last Published: 2013-04-10
Ratings: 0 0
Product(s): InfoScale & Storage Foundation

Problem

How to change the DMP I/O policy and monitor for performance

Solution

 

This article is a part of a set on troubleshooting volume performance. Click here to start at the beginning: https://www.veritas.com/docs/000087750

 

Table of Contents

Introduction
Determining the current I/O policy
Changing the I/O policy
Measuring DMP I/O performance using vxdmpadm iostat



Introduction

(Back to top)

When troubleshooting storage performance, review the DMP I/O policy for the disks. In some cases, switching to a different I/O policy may improve performance. For active/active arrays, "MinimumQ" (also known as "Least Queue Depth") is the default I/O policy, and it often provides the best I/O performance with little configuration required. The optimal I/O policy will always depend on the environment and the type of I/O.

 

 

Determining the current I/O policy

(Back to top)


Follow these steps to determine the current DMP I/O policy and change it, if needed:

  1. Use vxdmpadm listenclosure all to find the names of all attached disk enclosures (Figure 1).
  2. Use vxdmpadm getattr enclosure <enclosure_name> iopolicy to determine the DMP I/O policy of a specific enclosure (Figure 2).


In Figure 1, two enclosures are listed. "Disk" is a generic ASL that was loaded for the internal (non-SAN) disks. The name of the SAN disk array "ams_wms0."


Figure 1 - Using vxdmpadm to generate a list of available disk enclosures


Syntax:

vxdmpadm listenclosure all


Example, with typical output:

# vxdmpadm listenclosure all

ENCLR_NAME  ENCLR_TYPE  ENCLR_SNO  STATUS     ARRAY_TYPE  LUN_COUNT
===================================================================
disk        Disk        DISKS      CONNECTED  Disk        2
ams_wms0    AMS_WMS      73061583   CONNECTED  A/A-A       5

 



Figure 2 - Using vxdmpadm to determine the iopolicy of a given disk array


Syntax:

vxdmpadm getattr enclosure <enclosure_name> iopolicy


Example, with typical output:

# vxdmpadm getattr enclosure ams_wms0 iopolicy
ENCLR_NAME     DEFAULT        CURRENT
============================================
ams_wms0       MinimumQ       MinimumQ

 

 




Changing the I/O policy

(Back to top)
 


A detailed explanation of each DMP I/O policy can be found here:

"Specifying the DMP I/O policy" (from the Veritas Storage Foundation 6.0.1 Administrators Guide for Solaris)
https://sort.Veritas.com/public/documents/sfha/6.0.1/solaris/productguides/html/sf_admin/ch09s07s16.htm

 

  1. Use vxdmpadm listenclosure all to find the names of all attached disk enclosures (Figure 1, in the previous section).
  2. Use vxdmpadm setattr enclosure <enclosure_name> iopolicy=<iopolicy> to specify a new I/O policy (Figure 3).


Figure 3 - Using vxdmpadm to change the iopolicy for a disk array


Syntax:

vxdmpadm setattr enclosure <enclosure_name> iopolicy=<iopolicy>


Example, with typical output:

# vxdmpadm setattr enclosure ams_wms0 iopolicy=balanced


Note: Vxdmpadm getattr now shows that the current I/O policy is "Balanced."



# vxdmpadm getattr enclosure ams_wms0 iopolicy

ENCLR_NAME     DEFAULT        CURRENT
============================================
ams_wms0       MinimumQ       Balanced

 

 




Measuring DMP I/O performance using vxdmpadm iostat

(Back to top)


Vxdmpadm includes a I/O performance measuring utility that can be used to track performance before and after the DMP I/O policy has been changed (Figure 4).
 


More information about gathering statistics using vxdmpadm iostat can be found here:

"Examples of using the vxdmpadm iostat command" (from the Veritas Storage Foundation 6.0 Administrators Guide for Solaris)\
https://sort.Veritas.com/public/documents/sfha/6.0.1/solaris/productguides/html/sf_admin/ch09s07s11s01.htm



Figure 4 - Using vxdmpadm iostat to generate performance statistics for all available paths


Syntax:
  1. vxdmpadm iostat start
  2. vxdmpadm -uh -z iostat show interval=<number_of_seconds> count=<desired_number_of_samples>
  3. vxdmpadm iostat stop

Example, with typical output:

# vxdmpadm -uh -z iostat show all interval=30

Note: Using the "-z" switch causes vxdmpadm to omit paths that have zero I/O during each interval. The first sample is a cumulative of all I/O statistics since vxmpadm iostat was reset. A blank space is added between each sample.


             cpu usage = 36us    per cpu memory = 282624b
              OPERATIONS            BYTES           AVG TIME(ms)
PATHNAME   READS    WRITES     READS    WRITES     READS     WRITES
sdd            0     21974         0      108m    0.00   138.35
sde            0      1891         0     7628k    0.00    77.71
sdf            0     21815         0      106m    0.00   138.65
sdh            0      2339         0     9468k    0.00    79.16
sdi            0      1866         0     7524k    0.00    77.90
sdn            0      2366         0     9560k    0.00    78.74

sdd            0     13453         0      148m    0.00   134.63
sdf            1     13064        8k      153m  102.09   139.12
sdj            1         0        8k         0   70.99     0.00

sdd            0     10467         0      124m    0.00   158.45
sdf            0     10284         0      120m    0.00   161.47

sdd            0     14288         0      104m    0.00   140.29
sde            0       297         0     1268k    0.00    81.81
sdf            0     14043         0      100m    0.00   142.60
sdh            0       252         0     1048k    0.00    82.80
sdi            0       265         0     1136k    0.00    85.91
sdn            0       259         0     1112k    0.00    87.16

sdd            0     12916         0       83m    0.00   156.89
sde            0       900         0     3972k    0.00    89.65
sdf            0     12953         0       80m    0.00   158.26
sdh            0      1067         0     4604k    0.00    88.29
sdi            0       842         0     3528k    0.00    90.40
sdn            0      1118         0     4720k    0.00    88.79

sdd            0     12344         0       97m    0.00   150.96
sde            0      1324         0     5760k    0.00    91.52
sdf            0     12218         0       97m    0.00   152.77
sdh            0      1724         0     7340k    0.00    91.73
sdi            0      1339         0     5784k    0.00    93.20
sdn            0      1744         0     7495k    0.00    91.46

 
 

 


Was this content helpful?