White Papers

Server configuration
8 Dell EMC SC Series: Red Hat Enterprise Linux Best Practices | CML1031
2 Server configuration
This section discusses configuring the I/O stack on a Linux system. How the stack behaves and performs can
be precisely configured to the needs of the environment where the Linux systems operate. The configuration
aspects include tuning the HBA port retry count, the queue depth, the SCSI device timeout values, and many
more. Depending on the types and models of the HBAs, the parameters might be set on the HBA BIOS.
Consult the vendor documentation for information about the BIOS settings. The following subsections focus
on setting the parameters on the OS HBA driver. This provides a starting point and outlines a few
configuration parameters which should be considered as they are adapted for individual environment use.
The recommended settings for the HBAs, including the values to use with the OS HBA drivers, are
documented in the Dell EMC Storage Compatibility Matrix .
2.1 Managing the HBA driver module
The modprobe Linux facility provides a means to manage and configure the HBA driver operating
parameters (such as QLogic or Emulex) on a Linux system. Commonly, the queue depth and portdown
timeout are defined or overwritten in the HBA driver module configuration files that reside in the following
locations:
/etc/modprobe.d/<file> or /etc/modprobe.conf
/etc/modprobe.d/qla2xxx.conf #For QLogic
/etc/modprobe.d/lpfc.conf #For Emulex
2.1.1 Managing the queue depth
The default LUN queue depth can vary depending on the HBAs. The default value is usually around 32. A
higher queue depth of 64 or 128 might benefit environments that generate a high volume of I/Os. The setting
can be adjusted accordingly to meet individual environment needs. Increasing the queue depth might improve
performance without impacting the overall latency but performance testing should be done to determine the
exact benefit.
Show the current LUN queue depth setting:
# lsscsi -l
[14:0:2:0] disk COMPELNT Compellent Vol 0703 /dev/sdb
state=running queue_depth=32 scsi_level=6 type=0 device_blocked=0 timeout=60
Show the HBA queue depth setting:
For QLogic:
# cat /sys/module/qla2xxx/parameters/ql2xmaxqdepth
For Emulex:
Global settings that apply to all Emulex HBAs:
# cat /sys/module/lpfc/parameters/lpfc_lun_queue_depth
# cat /sys/module/lpfc/parameters/lpfc_hba_queue_depth