Nick Piggin wrote:
I think a proportional-share scheduler (which is what a CPU controller
may provide) has non-container uses also. Do you think nice (or sched policy) is enough to, say, provide guaranteed CPU usage for applications or limit their CPU usage? Moreover it is more flexible if guarantee/limit can be specified for a group of tasks, rather than individual tasks even in
non-container scenarios (like limiting CPU usage of all web-server tasks togther or for limiting CPU usage of make -j command).
Oh, I'm sure there are lots of things we *could* do that we currently can't.
What I want to establish first is: what exact functionality is required, why, and by whom.
You make it sound like users should feel sorry for wanting features already commonly available on other high performance unix kernels.
The answer is quite simple, people who are consolidating systems and working with fewer, larger systems, want to mark processes, groups of processes or entire containers into CPU scheduling classes, then either fair balance between them, limit them or reserve them a portion of the CPU - depending on the user and what their requirements are. What is unclear about that?
Yes, this does get somewhat simpler if you strap yourself into a complete virtualisation straightjacket, but the current thread is not about that approach - and the continual suggestions that we are all just being stupid and going about it the wrong way are locally off-topic.
Bear in mind that we have on the table at least one group of scheduling solutions (timeslice scaling based ones, such as the VServer one) which is virtually no overhead and could potentially provide the "jumpers" necessary for implementing more complex scheduling policies.