# set noop scheduler for non-rotating disks (SSD) # the glob matches sd* on physical hosts, xvd* on Xen hosts, and vd* on KVM hosts ACTION=="add|change", KERNEL=="xvd[a-z]|[sv]d[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop" # set deadline scheduler for rotating disks # the glob matches sd* on physical hosts, xvd* on Xen hosts, and vd* on KVM hosts # # newer KVM guests (Ubuntu 14.04 at least, so Linux >=3.13) using virtio vda don't # allow it to be set, but it's non fatal so let's just set it for now ACTION=="add|change", KERNEL=="xvd[a-z]|[sv]d[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="deadline" {% if 'storage' in group_names %} ## set disk tweaks ## see: http://www.fhgfs.com/wiki/wikka.php?wakka=StorageServerTuning ## see: http://community.gluster.org/a/linux-kernel-tuning-for-glusterfs/ # give the IO scheduler more flexibility by increasing the number of schedulable requests (queue_depth * 2): ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/nr_requests}="512" # To improve throughput for sequential reads, increase the maximum amount of read-ahead data. The actual amount of read-ahead is adaptive, so using a high value here won't harm performance for small random access. ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/read_ahead_kb}="4096" {% endif %}