## 7.6.2 HBA parameters for performance tuning 

You can use the example settings in this section to start your configuration in the specific workload environment. These settings are a guideline, and are not guaranteed to be the answer to all configurations. Always try to set up a test of your data with your configuration to see whether further tuning can help. For best results, it helps to have knowledge about your specific data I/O pattern. 

The settings in the following sections can affect performance on an AIX host. These sections examine these settings in relation to how they affect the two workload types. 

## Transaction-based settings 

The host attachment script sets the default values of attributes for IBM Spectrum Virtualize hdisks: devices.fcp.disk.IBM.rte  or devices.fcp.disk.IBM.mpio.rte . You can modify these values as a starting point. In addition, you can use several HBA parameters to set higher performance or large numbers of hdisk configurations. 

You can change all attribute values that are changeable by using the chdev  command for AIX. 

AIX settings that can directly affect transaction performance are the queue_depth  hdisk attribute and num_cmd_elem  attribute in the HBA attributes. 

## The queue_depth hdisk attribute 

For the logical drive (which is known as the hdisk in AIX), the setting is the attribute queue_depth , as shown in the following example: 

# chdev -l hdisk X  -a queue_depth= Y  -P 

In this example, X  is the hdisk number, and Y  is the value to which you are setting X  for queue_depth . 

For a high-volume transaction workload of small random transfers, try a queue_depth  value of 25  or more. For large sequential workloads, performance is better with shallow queue depths, such as a value of 4 . 

## The num_cmd_elem attribute 

For the HBA settings, the num_cmd_elem  attribute for the fcs device represents the number of commands that can be queued to the adapter, as shown in the following example: 

chdev -l fcs X  -a num_cmd_elems=2048 -P 

The default value is 200, but the following maximum values can be used, depending on your HBA vendor. 

The AIX settings that can directly affect throughput performance with large I/O block size are the lg_term_dma  and max_xfer_size  parameters for the fcs device. 

## Throughput-based settings 

In the throughput-based environment, you might want to decrease the queue-depth setting to a smaller value than the default from the host attach. In a mixed application environment, you do not want to lower the num_cmd_elem  setting because other logical drives might need this higher value to perform. In a purely high throughput workload, this value has no effect. 

Start values: For high throughput sequential I/O environments, use the start values lg_term_dma  = 0x400000  or 0x800000  (depending on the adapter type) and max_xfr_size  = 0x200000 . 

