=====Change I/O scheduler===== ===Do you need to change the scheduler?=== CFQ is the default scheduler. If you have a specific use case, then you should benchmark the different schedulers. Quote: [[https://www.kernel.org/doc/Documentation/block/cfq-iosched.txt]] CFQ has some optimizations for SSDs and if it detects a non-rotational media which can support higher queue depth (multiple requests at in flight at a time), then it cuts down on idling of individual queues and all the queues move to sync-noidle tree and only tree idle remains. This tree idling provides isolation with buffered write queues on async tree. ===Current scheduler=== Check current scheduler setting for sda:$ cat /sys/block/sda/queue/scheduler [noop] deadline cfq ===Change scheduler=== ==Temporary== echo "noop" > /sys/block/sda/queue/scheduler ==For all disks== Add to the kernel line in **/etc/grub.conf** elevator=noop ==For specific SSD's using udev== Using udev: /etc/udev/rules.d/60-schedulers.rules # set noop scheduler for non-rotating disks ACTION=="add|change", KERNEL=="sd[a-z]", TEST!="queue/rotational", ATTR{queue/scheduler}="noop" ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop" # set cfq scheduler for rotating disks ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="cfq"