View previous topic :: View next topic |
Author |
Message |
Bones McCracker Veteran


Joined: 14 Mar 2006 Posts: 1611 Location: U.S.A.
|
Posted: Sun Jul 15, 2007 7:42 pm Post subject: default i/o scheduler changed? [Solved] |
|
|
Upgrading from v2.6.20-gentoo-r8 to v2.6.21-gentoo-r4, I noticed a change to the comments in the kernel config that indicate CFQ is now the default I/O scheduler (although anticipatory was still set as the default). I'm looking for some insight into this change.
2.6.20-r8 indicates that Anticipatory is the default I/O scheduler:
Quote: | [*]The anticipatory I/O scheduler is the default disk scheduler. It is generally a good choice for most environments, but is quite large and complex when compared to the deadline I/O scheduler, it can also be slower in some cases especially some database loads.
[*]The CFQ I/O scheduler tries to distribute bandwidth equally among all processes in the system. It should provide a fair working environment, suitable for desktop systems. |
2.6.21-r5 indicates that CFQ is the default I/O scheduler (however, after make defconfig, anticipatory was selected as the default):
Quote: | [*]The anticipatory I/O scheduler is generally a good choice for most environments, but is quite large and complex when compared to the deadline I/O scheduler, it can also be slower in some cases especially some database loads.
[*]The CFQ I/O scheduler tries to distribute bandwidth equally among all processes in the system. It should provide a fair working environment, suitable for desktop systems. This is the default I/O scheduler.
|
I understand what the two do differently. I am curious about three things:
a) If the comments state that CFQ is the default scheduler, why wasn't it set as the default by defconfig?
b) Why the change? Have there been recent dramatic improvements to the CFQ scheduler or something? Does this reflect an increase in the proportion of linux machines being used as desktops? What gives?
Last edited by Bones McCracker on Mon Jul 16, 2007 9:18 pm; edited 1 time in total |
|
Back to top |
|
 |
didymos Advocate


Joined: 10 Oct 2005 Posts: 4798 Location: California
|
Posted: Mon Jul 16, 2007 9:02 am Post subject: |
|
|
Some forgot to fix the defconfig bit. It's set correctly when doing "make defconfig" with 2.6.22. _________________ Thomas S. Howard |
|
Back to top |
|
 |
Bones McCracker Veteran


Joined: 14 Mar 2006 Posts: 1611 Location: U.S.A.
|
Posted: Mon Jul 16, 2007 6:18 pm Post subject: |
|
|
Thanks.
I'm still curious why the change. |
|
Back to top |
|
 |
broken_chaos Guru

Joined: 18 Jan 2006 Posts: 370 Location: Ontario, Canada
|
Posted: Mon Jul 16, 2007 7:28 pm Post subject: |
|
|
CFQ is better, to put it simply. Much, much, much better in general for desktop/laptop/workstation I/O speeds and fairness between processes. Anticipatory or Deadline can be better for certain servers, but server admins should know what they're doing much more often than desktop/laptop users.  |
|
Back to top |
|
 |
Bones McCracker Veteran


Joined: 14 Mar 2006 Posts: 1611 Location: U.S.A.
|
Posted: Mon Jul 16, 2007 9:18 pm Post subject: |
|
|
I guess things have changed then. People used to say CFQ was good for things you didn't want hiccups on (like video, etc.) but that anticipatory got much better performance in general. Sounds like there have been improvements to the CFQ scheduler.
Thanks for the insight. |
|
Back to top |
|
 |
broken_chaos Guru

Joined: 18 Jan 2006 Posts: 370 Location: Ontario, Canada
|
Posted: Mon Jul 16, 2007 9:25 pm Post subject: |
|
|
Just for a little more, from the kernel configuration:
"The CFQ I/O scheduler tries to distribute bandwidth equally among all processes in the system. It should provide a fair working environment, suitable for desktop systems."
It tries to be fair to all processes, which is more important on a desktop than one process having all the disk I/O - 90% of the time you'll not just have *one* program *only* doing disk access - your IM client might be writing a logfile, or reading a configuration file, while your browser accesses/saves cache files, and your cron daemon is doing a updatedb for locate, for instance. All these don't happen at the same time, but I believe they're supposed to be 'sharing' the I/O much better - for instance if you throw a copy of a large file into there, the other processes will still get disk I/O in a reasonable time.
(Well, I think that's the theory - it's obviously not *perfect* yet, but it's, on average, better for desktops/laptops than the other two currently.) |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|