[nSLUG] 2.6 kernel performance

Donald Teed donald.teed at gmail.com
Wed Jun 22 01:01:03 ADT 2005

On 6/21/05, Bill Davidson <bdavidso at supercity.ns.ca> wrote:
> What does "ps aux" show?  Do you see any processes that seem to be using
> a lot of cpu time?  How is memory usage?

There was only 2 or 3% used in the top few processes at the time
I had that initial trial scheduler with 2.6.12.  Memory usage is normal,
no swap happening.  512MB on board.

I've since found that using none of the optional schedulers, or simply
the "default" anticipatory scheduler with elevator=as, sees
the load factor at more traditional levels.

In some cases the reporting tools can get out of step with kernel
changes.  But load factor is grabbed straight from /proc

> I wouldn't worry too much about these numbers.  I think you would need
> to see changes in a more application-oriented test before being
> concerned.

The load factor or bogus load factor number is now down to roughly
the same as with a 2.4 kernel.

Copying a 267 MB file from one RAID 5 to another
in a 2.4 kernel has these average times:

real: 14  user: 0.11  sys: 8

Copying a 267 MB file from one RAID 5 to another
in a 2.6.12 kernel has these average times:

real: 17  user: 0.15  sys: 7.2
> Were I you I would be far more concerned about the load average numbers
> over 1.  Trying to diagnose low-level performance issues while your load
> average is that high is pointless, like trying to tweak your carburetor
> for best performance while you have a flat tire.

Yep, if the numbers are real.  But top wasn't showing anything
active in the process list to match a load number around 1.
Maybe it is simply a cosmetic kernel bug.

> What about your hdparm numbers -- did they change at all when you
> changed scheduler?

There have been small changes in the benchmark numbers but
nothing significant.  I'm still working at finding a kernel or
options that will match 2.4 performance.
> > I see that I should have used an "elevator=cfq" kernel option
> > along with those IO scheduler options.
> >
> Yes, I believe that is the "normal" way to select a different scheduler
> algorithm, or would be if any of this could be considered "normal".

I am looking at the Debian sourced kernel for 2.6.8 now.
It is unusual in that make menuconfig does not reveal
a subsection under Device Drivers -> Block devices ->
IO Schedulers -> , and yet if I look at .config under 2.6.8,
there are variables for these:


It is the same on my Sun Sparc running 2.6.6 with Gentoo
sourced kernel.  They are all built-in to the kernel by
default and make menuconfig does not show it to you.

The difference is that under 2.6.12, make menuconfig
provides a way to select or deselect the above config 
options, at Device Drivers -> Block devices ->
IO Schedulers ->

So I guess people have been getting these scheduler options
built in the 2.6 kernel normally, but they don't get the chance
to deselect it, at least through make menuconfig in earlier
kernel versions.

Also, unless the elevator= kernel option is used,
I would guess we are not getting one of these
above schedulers - or do we get AS?  How can
one test?

> Well, there is always some scheduler present.  I suggest you compile
> your 2.6 kernel with all the schedulers, and then try booting with each
> one selected (noop, deadline, as, cfq), then run some meaningful tests.
> Like try copying some files over the network, and see if you can tell
> the difference.  Again, my reading suggests that the cfq scheduler is
> intended to provide fairness to all processes and is intended for
> desktop use.  Under the right circumstances the as scheduler should give
> you the best performance, followed by the deadline scheduler.

I'm going to drop down to a 2.6.8 and try it.


More information about the nSLUG mailing list