Developers Guide

Performance considerations
48 Dell EMC SC Series with Red Hat Enterprise Linux 7x | CML1071
This parameter can be dynamically changed by performing the following command. However, it is
recommended to leave the scheduler as deadline with all SC Series storage implementations. The scheduler
value is also dynamically adjusted according to the use of RHEL 7.x tuning profiles as previously discussed.
# echo cfq > /sys/block/dm-X/queue/scheduler
# cat /sys/block/dm-X/queue/scheduler noop deadline [cfq]
The scheduler, if changed, applies only to the current running instance of the operating system and only for
this specific /dev/sdX device where it is applied. A script could be used to make this change persistent on all
required SCSI (sd) devices (on a device specific basis) during boot time. Alternatively, this change can also
be applied system wide during boot time by appending the elevator= key value option to the end of the kernel
string inside of the /boot/grub2/grub.cfg boot configuration file as shown in the following.
linux16 /vmlinuz-0-rescue-c417dfc159fc4450ac2cc28137506041 root=UUID=35bea1c0-
ce32-42a4-8e36-72fd5e77471d ro rd.lvm.lv=VolGroup00/root
vconsole.font=latarcyrheb-sun16 rd.lvm.lv=VolGroup00/swap crashkernel=auto
vconsole.keymap=us rhgb quiet elevator=deadline
4.5.2 read_ahead_kb
This parameter is used when the kernel detects it is sequentially reading from a block device and defines how
many kilobytes of I/O the Linux kernel will read. Modifying this value can have a noticeable effect on
performance in heavy sequential read workloads. The RHEL 7.x default value for this parameter is 4096 for
each block device. This default configuration state is a good starting point.
4.5.3 nr_requests
The nr_requests value is used by the Linux kernel to define the depth of the request queue and is often used
in conjunction with changes to the HBA queue depth configuration. The RHEL 7.x default value is 128.
Increasing this value sets the I/O subsystem to a larger threshold where it will continue scheduling requests.
This keeps the I/O subsystem moving in one direction longer, and can result in more efficient handling of disk
I/O. It is recommended as a starting point to increase this value to 1024, then measure, assess, and adjust
according to the performance results observed and achieved.
4.5.4 max_sectors_kb
The max_sectors_kb value determines the number of kilobytes that the block layer will allow and accept
consistent with the filesystem request. This value must remain equal to or smaller than the maximum
allowable size dictated by the hardware layer. It is recommended with SC Series storage, to configure this
value to 2048 as a starting point in alignment with the SC Series 2MB default page size, then measure,
assess, and adjust according to the performance results observed and achieved.
This configuration is applied to a single block device as shown in the following example. In multipath
environments, apply this command to all paths that constitute the multipath device.
# echo 2048 > /sys/block/sdX/queue/max_sectors_kb
Multipath devices inherit their configuration settings from the block-level device path configuration.