Verifying the Disk I/O Scheduler on Linux

For best performance for Oracle ASM, Oracle recommends that you use the Deadline I/O Scheduler.

Disk I/O schedulers reorder, delay, or merge requests for disk I/O to achieve better throughput and lower latency. Linux has multiple disk I/O schedulers available, including Deadline, Noop, Anticipatory, and Completely Fair Queuing (CFQ).
On each cluster node, enter the following command to verify that the Deadline disk I/O scheduler is configured for use:
# cat /sys/block/${ASM_DISK}/queue/scheduler
noop [deadline] cfq

In this example, the default disk I/O scheduler is Deadline and ASM_DISK is the Oracle Automatic Storage Management (Oracle ASM) disk device.

On some virtual environments (VM) and special devices such as fast storage devices, the output of the above command may be none. The operating system or VM bypasses the kernel I/O scheduling and submits all I/O requests directly to the device. Do not change the I/O Scheduler settings on such environments.

If the default disk I/O scheduler is not Deadline, then set it using a rules file:

  1. Using a text editor, create a UDEV rules file for the Oracle ASM devices:

    # vi /etc/udev/rules.d/60-oracle-schedulers.rules
  2. Add the following line to the rules file and save it:

    ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"
  3. On clustered systems, copy the rules file to all other nodes on the cluster. For example:

    $ scp 60-oracle-schedulers.rules root@node2:/etc/udev/rules.d/
  4. Load the rules file and restart the UDEV service. For example:

    1. Oracle Linux and Red Hat Enterprise Linux

      # udevadm control --reload-rules
    2. SUSE Linux Enterprise Server

      # /etc/init.d boot.udev restart
  5. Verify that the disk I/O scheduler is set as Deadline.