Understanding Linux SCSI queue depths
- by Troels Arvin
I'm experimenting with the effects of different SCSI queue depth values on a Dell server running CentOS Linux 5.4 (x86_64).
The server has two QLogic QLE2560 FC HBAs connected via multipathing to a storage system. The storage system has allocated two LUNs to the server, each connected through four paths in an active-active-active-active round-robin configuration. All in all, the two LUNs exist as eight /dev/sdX devices, represented by two devices in /dev/mpath.
I currently adjust the queue depth values in /etc/modprobe.conf and check the result (after rebooting) by looking in the seventh column of /proc/scsi/sg/devices.
Two questions related to that:
Is there a way to adjust queue depths without rebooting or unloading the qla2xxx kernel module? E.g., can I echo a new queue depth value into some /proc or /sys-like file to update the queue depth?
If I set the queue depth to 128, is that
128 in total for all devices handled by the qla2xxx module?, or
128 for each HBA? (256 in total), or
128 for each of the eight /dev/sdX devices (1024 in toal)?, or
128 for each of the two /dev/mpath/... devices (256 in total)?
This is important for me to know so that my server doesn't flood the storage system, affecting other servers connected to it.