All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Williams <pwil3058@bigpond.net.au>
To: Kirill Korotaev <dev@sw.ru>
Cc: Balbir Singh <bsingharora@gmail.com>,
	Mike Galbraith <efault@gmx.de>, Con Kolivas <kernel@kolivas.org>,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	Kingsley Cheung <kingsley@aurema.com>,
	Ingo Molnar <mingo@elte.hu>,
	Rene Herman <rene.herman@keyaccess.nl>
Subject: Re: [RFC 3/5] sched: Add CPU rate hard caps
Date: Fri, 02 Jun 2006 09:21:40 +1000	[thread overview]
Message-ID: <447F7684.10405@bigpond.net.au> (raw)
In-Reply-To: <447E9ADA.90805@sw.ru>

Kirill Korotaev wrote:
>>>>> Using a timer for releasing tasks from their sinbin sounds like a  bit
>>>>> of an overhead. Given that there could be 10s of thousands of tasks.
>>>>
>>>>
>>>>
>>>> The more runnable tasks there are the less likely it is that any of 
>>>> them is exceeding its hard cap due to normal competition for the 
>>>> CPUs.  So I think that it's unlikely that there will ever be a very 
>>>> large number of tasks in the sinbin at the same time.
>>>
>>> for containers this can be untrue...
>>
>>
>> Why will this be untrue for containers?
> if one container having 100 running tasks inside exceeded it's credit, 
> it should be delayed. i.e. 100 tasks should be placed in sinbin if I 
> understand your algo correctly. the second container having 100 tasks as 
> well will do the same.

1. Caps are set on a per task basis not on a group basis.
2. Sinbinning is the last resort and only used for hard caps.  The soft 
capping mechanism is also applied to hard capped tasks and natural 
competition also tends to reduce usage rates.

In general, sinbinning will only kick in on lightly loaded systems where 
there is no competition for CPU resources.

Further, there is a natural ceiling of 999 per CPU on the number tasks 
that will ever be in the sinbin at the same time.  To achieve this 
maximum some very unusual circumstances have to prevail:

1. these 999 tasks must be the only runnable tasks on the system,
2. they all must have a cap of 1/1000, and
3. the distribution of CPU among them must be perfectly fair so that 
they all have the expected average usage rate of 1/999.

If you add one more task to this mix the average usage would be 1/1000 
and if they all had that none would be exceeding their cap and there 
would be no sinbinning at all.  Of course, in reality, half would be 
slightly above the average and half slightly below and about 500 would 
be sinbinned.  But this reality check also applies to the 999 and 
somewhat less than 999 would actually be sinbinned.

As the number of runnable tasks increases beyond 1000 then the number 
that have a usage rate greater than their cap will decrease and quickly 
reach zero.

So the conclusion is that the maximum number of sinbinned tasks per CPU 
is given by:

min(1000 / min_cpu_rate_cap - 1, nr_running)

As you can see, if a minimum cap cpu of 1 causes problems we can just 
increase that minimum.

And once again I ask what's so special about containers that changes this?

Peter
-- 
Peter Williams                                   pwil3058@bigpond.net.au

"Learning, n. The kind of ignorance distinguishing the studious."
  -- Ambrose Bierce

  reply	other threads:[~2006-06-01 23:21 UTC|newest]

Thread overview: 100+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-05-26  4:20 [RFC 0/5] sched: Add CPU rate caps Peter Williams
2006-05-26  4:20 ` [RFC 1/5] sched: Fix priority inheritence before CPU rate soft caps Peter Williams
2006-05-26  4:20 ` [RFC 2/5] sched: Add " Peter Williams
2006-05-26 10:48   ` Con Kolivas
2006-05-26 11:15     ` Mike Galbraith
2006-05-26 11:17       ` Con Kolivas
2006-05-26 11:30         ` Mike Galbraith
2006-05-26 13:55     ` Peter Williams
2006-05-27  6:31   ` Balbir Singh
2006-05-27  7:03     ` Peter Williams
2006-05-28  0:11       ` Peter Williams
2006-05-28  7:38         ` Balbir Singh
2006-05-28 13:35           ` Peter Williams
2006-05-28 14:42             ` Balbir Singh
2006-05-28 23:27               ` Peter Williams
2006-05-31 13:17                 ` Kirill Korotaev
2006-05-31 23:39                   ` Peter Williams
2006-06-01  8:09                     ` Kirill Korotaev
2006-06-01 23:38                       ` Peter Williams
2006-06-02  1:35                         ` Peter Williams
2006-05-26  4:20 ` [RFC 3/5] sched: Add CPU rate hard caps Peter Williams
2006-05-26  6:58   ` Kari Hurtta
2006-05-27  1:00     ` Peter Williams
2006-05-26 11:00   ` Con Kolivas
2006-05-26 13:59     ` Peter Williams
2006-05-26 14:12       ` Con Kolivas
2006-05-26 14:23       ` Mike Galbraith
2006-05-27  0:16         ` Peter Williams
2006-05-27  9:28           ` Mike Galbraith
2006-05-28  2:09             ` Peter Williams
2006-05-27  6:48   ` Balbir Singh
2006-05-27  8:44     ` Peter Williams
2006-05-31 13:10       ` Kirill Korotaev
2006-05-31 15:59         ` Balbir Singh
2006-05-31 18:09           ` Mike Galbraith
2006-06-01  7:41           ` Kirill Korotaev
2006-06-01  8:34             ` Balbir Singh
2006-06-01 18:43               ` [ckrm-tech] " Chandra Seetharaman
2006-06-01 23:26                 ` Peter Williams
2006-06-02  2:02                   ` Chandra Seetharaman
2006-06-02  3:21                     ` Peter Williams
2006-06-02  8:32                       ` Balbir Singh
2006-06-02 13:30                         ` Peter Williams
2006-06-02 18:58                           ` Balbir Singh
2006-06-02 23:49                             ` Peter Williams
2006-06-03  4:59                               ` Balbir Singh
2006-06-02 19:06                       ` Chandra Seetharaman
2006-06-03  0:04                         ` Peter Williams
2006-06-02  0:36                 ` Con Kolivas
2006-06-02  2:03                   ` [ckrm-tech] " Chandra Seetharaman
2006-06-02  5:55                 ` [ckrm-tech] [RFC 3/5] " Peter Williams
2006-06-02  7:47                   ` Kirill Korotaev
2006-06-02 13:34                     ` Peter Williams
2006-06-05 22:11                     ` Sam Vilain
2006-06-06  8:24                       ` Kirill Korotaev
2006-06-06  9:13                         ` Con Kolivas
2006-06-06  9:28                           ` Kirill Korotaev
2006-06-02  8:46                   ` Mike Galbraith
2006-06-02 13:18                     ` Peter Williams
2006-06-02 14:47                       ` Mike Galbraith
2006-06-03  0:08                         ` Peter Williams
2006-06-03  6:02                           ` Mike Galbraith
2006-06-03 11:03                             ` Peter Williams
2006-06-06 11:26                         ` Srivatsa Vaddagiri
2006-06-02  7:34                 ` Kirill Korotaev
2006-06-02 21:23                   ` Shailabh Nagar
2006-06-01 23:47               ` Sam Vilain
2006-06-01 23:43           ` Peter Williams
2006-05-31 23:28         ` Peter Williams
2006-06-01  7:44           ` Kirill Korotaev
2006-06-01 23:21             ` Peter Williams [this message]
2006-05-26  4:21 ` [RFC 4/5] sched: Add procfs interface for CPU rate soft caps Peter Williams
2006-05-26  4:21 ` [RFC 5/5] sched: Add procfs interface for CPU rate hard caps Peter Williams
2006-05-26  8:04 ` [RFC 0/5] sched: Add CPU rate caps Mike Galbraith
2006-05-26 16:11   ` Björn Steinbrink
2006-05-28 22:46     ` Sam Vilain
2006-05-28 23:30       ` Peter Williams
2006-05-29  3:09         ` Sam Vilain
2006-05-29  3:41           ` Peter Williams
2006-05-29 21:16             ` Sam Vilain
2006-05-29 23:12               ` Peter Williams
2006-05-30  2:07                 ` Sam Vilain
2006-05-30  2:45                   ` Peter Williams
2006-05-30 22:05                     ` Sam Vilain
2006-05-30 23:22                       ` Peter Williams
2006-05-30 23:25                       ` Peter Williams
2006-06-05 23:56                       ` Peter Williams
2006-05-27  0:16   ` Peter Williams
2006-05-26 10:41 ` Con Kolivas
2006-05-27  1:28   ` Peter Williams
2006-05-27  1:42     ` Con Kolivas
2006-05-26 11:09 ` Con Kolivas
2006-05-26 14:00   ` Peter Williams
2006-05-26 11:29 ` Balbir Singh
2006-05-27  1:40   ` Peter Williams
  -- strict thread matches above, loose matches on Subject: below --
2006-06-01 21:03 [RFC 3/5] sched: Add CPU rate hard caps Al Boldi
2006-06-02  1:33 ` Peter Williams
2006-06-02 11:23   ` Matt Helsley
2006-06-02 13:16     ` Peter Williams
2006-06-06 10:47     ` Srivatsa Vaddagiri

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=447F7684.10405@bigpond.net.au \
    --to=pwil3058@bigpond.net.au \
    --cc=bsingharora@gmail.com \
    --cc=dev@sw.ru \
    --cc=efault@gmx.de \
    --cc=kernel@kolivas.org \
    --cc=kingsley@aurema.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=rene.herman@keyaccess.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.