White Papers

Performance tuning
47 Dell EMC SC Series: Red Hat Enterprise Linux Best Practices | CML1031
4.6 iSCSI considerations
Tuning performance for iSCSI is as much an effort in Ethernet network tuning as it is block-level tuning.
Evaluate the common Ethernet kernel tunable parameters in order to determine the settings that provide the
optimal performance gain with iSCSI. The use of Jumbo frames can lead to improved iSCSI performance and
is a common recommendation for a large database environment. To use Jumbo frames, all devices on the
network path must support setting a large MTU value, typically 9000. SC Series storage allows setting the
MTU value on each network interface. Like Fibre Channel, iSCSI changes should be made individually,
incrementally, and evaluated against multiple workload types in order to fully understand the effects on overall
performance.
In other words, tuning performance for iSCSI is often more time consuming because of the block-level
subsystem tuning considerations in addition to network (Ethernet) tuning. A solid understanding of the various
Linux subsystem layers involved is necessary to effectively tune the system.
Kernel parameters that can be tuned for performance are found in the /proc/sys/net/core and
/proc/sys/net/ipv4 kernel parameters. Once optimal values are determined, permanently set these in the
/etc/sysctl.conf file. Like most other modern operating system platforms, Linux can efficiently auto-tune TCP
buffers. However, by default, some of the settings are conservatively low. Experimenting with the following
kernel parameters can lead to improved network performance, and subsequently improve iSCSI performance.
For a full list of network tuning parameters, consult the Red Hat Enterprise Linux Network Performance
Tuning Guide that contains details information about many parameters and their effects.
TCP tuning parameters
Parameters
Description
net.core.rmem_max
Max receive socket buffer size
net.core.wmem_max
Max send socket buffer size
net.ipv4.tcp_rmem
Min, initial, and max TCP receive buffer size
net.ipv4.tcp_wmem
Min, initial, and max buffer space allocated
net.ipv4.tcp_moderate_rcvbuf
Enable/disable auto tuning of the TCP receive buffer size
net.ipv4.tcp_window_scaling
Allows a larger TCP Receive Window