Re: [ANNOUNCE] RSDL completely fair starvation free interactive cpuscheduler

From: jos poortvliet
Date: Tue Mar 06 2007 - 14:02:32 EST


Op Tuesday 06 March 2007, schreef Willy Tarreau:
> In a way, I think they are right. Let me explain. Pluggable schedulers are
> useful when you want to switch away from the default one. This is very
> useful during development of a new scheduler, as well as when you're not
> satisfied with the default scheduler. Having this feature will incitate
> many people to develop their own scheduler for their very specific
> workload, and nothing generic. It's a bit what happened after all : you,
> Peter, Nick, and Mike have worked a lot trying to provide alternative
> solutions.

Did that happen for I/O? There are a few schedulers, eg some for servers,
other more for desktop or throughput. But not 10 or something...

> But when you think about it, there are other OSes which have only one
> scheduler and which behave very well with tens of thousands of tasks and
> scale very well with lots of CPUs (eg: solaris). So there is a real
> challenge here to try to provide something at least as good and universal
> because we know that it can exist. And this is what you finally did : work
> on a scheduler which ought to be good with any workload.

I can imagine a desktop can work optimally with another scheduler than a tiny
embedded OS in a phone or an 8-core system serving a website, or a
distributed 512 core system doing heavy scientific calculations?!?

Optimizing for all at the same time involves some compromises, and thus limits
performance on certain scenario's, right?

> Then, when we have a generic, good enough scheduler for most situations, I
> think that it could be good to get the plugsched for very specific usages.
> People working in HPC may prefer to allocate ressource differently for
> instance. There may also be people refusing to mix tasks from different
> users on two different siblings of one CPU for security reasons, etc... All
> those would justify a plugable scheduler. But it should not be an excuse to
> provide a set of bad schedulers and no good one.

CFQ does pretty well at most workloads, that's why it's default, right? But
there is choice, which is a good thing. And the current mainline CPU
scheduler isn't bad at all, so having 'no good one' won't happen anyway.

> The CPU scheduler is often compared to the I/O schedulers while in fact
> this is a completely different story. The I/O schedulers are needed because
> the hardware and filesystems may lead to very different behaviours, and the
> workload may vary a lot (eg: news server, ftp server, cache, desktop, real
> time streaming, ...). But at least, the default I/O scheduler was good
> enough for most usages, and alternative ones are here to provide optimal
> solutions to specific needs.

Ok, for I/O, the diff could be pretty big. But still, there are workloads
which could be improved by a certain scheduler, right?

And wouldn't it make sense then to have a choice in the default kernel at
boottime? If that wouldn't hurt performance, it would be an improvement for
desktop distributions like (K)ubuntu who can set staircase by default, and
server distro's offering RSDL...

At least having a desktop/interactivity optimized scheduler like staircase and
a fair, throughput-optimized scheduler like RSDL sounds sane. RSDL does
better at the msql testcase, staircase is better on the desktop... We're not
talking about huge amounts of code, or 10 schedulers, and the diff of a few
percent and better scaling on many cpu's and processes versus better
interactivity on the desktop sounds like it's worth it.

> Regards,
> Willy

Attachment: pgp00000.pgp
Description: PGP signature