Queue depth limits in iSER networks
The queue depth is the number of I/O operations that can be run in parallel on a device. If you are designing a configuration for an iSER network, you must estimate the queue depth for each session to avoid application failures.
If a node reaches the maximum number of queued commands, it returns error codes to the
host such as Resource unavailable. Many operating systems cannot recover if the
situation persists for more than 15 seconds. This inability to recover can result in one or more
servers that present errors to applications and application failures on the servers.
The formula for queue depth calculation considers the following factors:
- The maximum number of queued commands is calculated on a per-node basis. An I/O group contains two nodes. The system must continue to function when one of the nodes in an I/O group is not available.
- If a volume is mapped to be seen by more than one server, each of the servers can send commands to it.
- If a device driver times out of a command, it immediately reissues the command. The commands are stored in the command queue.
After you calculate the queue depth limit, you must apply it. Each operating system has a particular method of limiting the queue depth on a per-volume basis; see your host operating system documentation to change queue depth.