Changing IO Scheduler in Suse

From Suntel Communications knowledgebase

Jump to: navigation, search

Suse comes with a Flexible I/O scheduler which allows administrators to tune the server to match its usage with four I/O behavior policies:

  • Complete Fair Queuing (CFQ) is the default I/O scheduler and is suitable for a wide variety of applications, especially desktop and multimedia workloads. CFQ treats all competing processes equally, assigns each process a unique request queue, and gives each queue equal bandwidth.
  • Deadline queuing implements a per-request service deadline to ensure that no requests are neglected, thus providing excellent request latency while maintaining good disk throughput. Deadline policy is best for disk-intensive database applications.
  • Anticipatory queuing uses the deadline mechanism plus an anticipation heuristic to predict the actions of applications. This provides greater disk throughput but slightly increases latency. The anticipation heuristic is suitable for file servers but does not work as well for database workloads.
  • No-Op queuing is faithful to its name. No sorting or merging of I/O requests to maximize throughput is performed by the scheduler. No-Op provides intriguing possibilities at both extreme ends of the I/O spectrum. Clearly, it would remove overhead from infrequently used devices. On the other hand, with an increasing role being played by smart SAN arrays, No-Op could prove an interesting way to reduce overhead with these devices.

In Order to Change the I/O Scheduler you need to pass kernel a parameter call elevator at boot time, which once decided can be put into GRUB configuration.

The Format is:

elevator=[IOSCHED]
Format: {"anticipatory" | "cfq" | "deadline" | "noop"}
Personal tools