Thank you for visiting this page, this page has been update in another link Linux io scheduler comparison throughput
In the article change Linux io scheduler, I described the basic idea of each io scheduler, also how to change them to meet your application requirement. CFQ is the default i/o scheduler, and it's the best bet In most of applications too. Still, Linux allows you to tune it for your own application. In this article, I'll show you that how I tested i/o scheduler for file server. Most of file accesses are full file copy. If you can simulate your own application i/o, then there you go.Env:xfsprogs-2.9.4-1.sl5.x86_64, iozone version 3.327. readahead buffer set to 16386. Test1: 1 thread throughput writing and reading test.test command(no other application running on the node)/usr/bin/iozone -s24g -r512 -i 0 -i 1 -t 1 -+u Output is in Kbytes/sec
As you can see, there is hardly different amoung them. The reason is simple, the test was just single thread sequencial i/o. CPU cost Out put is CPU%
As you can see, NOOP takes less CPU cost, no pause, no optimization, make sense. Same condition with the first one, except number of threads. /usr/bin/iozone -s24g -r512 -i 0 -i 1 -t 10 -+u Output is in Kbytes/sec
From the data above, you can see there is not much different on reading, which is the main area of io scheduler tunning for. So, for sequencial i/o, i/o scheduler only does a little on reading. While they made different on writing, where deadline does the best. CPU cost Out put is CPU%
Overall, let's say, CFQ is a compromised i/o scheduler on sequencial i/o, between I/O performance and CPU cost. Deadline doest the best if CPU is not a cost consideration on your application. |