From: Paul Jackson <pj@sgi.com>
To: Christoph Lameter <clameter@sgi.com>
Cc: npiggin@suse.de, rohitseth@google.com,
ckrm-tech@lists.sourceforge.net, devel@openvz.org,
linux-kernel@vger.kernel.org
Subject: Re: [patch00/05]: Containers(V2)- Introduction
Date: Wed, 20 Sep 2006 15:27:53 -0700 [thread overview]
Message-ID: <20060920152753.6f3a3221.pj@sgi.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0609201008160.30793@schroedinger.engr.sgi.com>
Christoph, responding to Nick:
> > Look at what the patches do. These are not only for hard partitioning
> > of memory per container but also those that share memory (eg. you might
> > want each to share 100MB of memory, up to a max of 80MB for an individual
> > container).
>
> So far I have not been able to find the hooks to the VM. The sharing
> would also work with nodes. Just create a couple of nodes with the sizes you
> want and then put the node with the shared memory into the cpusets for the
> apps sharing them.
Cpusets certainly allows for sharing - in the sense that multiple
tasks can be each be allowed to allocate from the same node (fake
or real.)
However, this is not sharing quite in the sense that Nick describes it.
In cpuset sharing, it is predetermined which pages are allowed to be
allocated by which tasks. Not "how many" pages, but "just which" pages.
Let's say we carve this 100 MB's up into 5 cpusets, of 20 MBs each, and
allow each of our many tasks to allocate from some specified 4 of these
5 cpusets. Then, even if some of those 100 MB's were still free, and
if a task was well below its allowed 80 MB's, the task might still not
be able to use that free memory, if that free memory happened to be in
whatever was the 5th cpuset that it was not allowed to use.
Seth:
Could your container proposal handle the above example, and let that
task have some of that memory, up to 80 MB's if available, but not
more, regardless of what node the free memory was on?
I presume so.
Another example that highlights this difference - airline overbooking.
If an airline has to preassign every seat, it can't overbook, short of
putting two passengers in the same seat and hoping one is a no show,
which is pretty cut throat. If an airline is willing to bet that
seldom more than 90% of the ticketed passengers will show up, and it
doesn't preassign all seats, it can wait until flight time, see who
shows up, and hand out the seats then. It can preassign some seats,
but it needs some passengers showing up unassigned, free to take what's
left over.
Cpusets preassigns which nodes are allowed a task. If not all the
pages on a node are allocated by one of the tasks it is preassigned to,
those pages "fly empty" -- remain unallocated. This happens regardless
of how overbooked is the memory on other nodes.
If you just want to avoid fisticuffs at the gate between overbooked
passengers, cpusets are enough. If you further want to maximize utilization,
then you need the capacity management of resource groups, or some such.
> > The nodes+cpusets stuff doesn't seem to help with that because you
> > with that because you fundamentally need to track pages on a per
> > container basis otherwise you don't know who's got what.
>
> Hmmm... That gets into issues of knowing how many pages are in use by an
> application and that is fundamentally difficult to do due to pages being
> shared between processes.
Fundamentally difficult or not, it seems to be required for what Nick
describes, and for sure cpusets doesn't do it (track memory usage per
container.)
> > Now if, in practice, it turns out that nobody really needed these
> > features then of course I would prefer the cpuset+nodes approach. My
> > point is that I am not in a position to know who wants what, so I
> > hope people will come out and discuss some of these issues.
I don't know either ;).
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.925.600.0401
next prev parent reply other threads:[~2006-09-20 22:28 UTC|newest]
Thread overview: 150+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-20 2:16 [patch00/05]: Containers(V2)- Introduction Rohit Seth
2006-09-20 5:39 ` Nick Piggin
2006-09-20 16:26 ` Christoph Lameter
2006-09-20 16:26 ` Christoph Lameter
2006-09-20 16:56 ` Nick Piggin
2006-09-20 16:56 ` Nick Piggin
2006-09-20 17:08 ` Christoph Lameter
2006-09-20 17:08 ` Christoph Lameter
2006-09-20 17:19 ` Nick Piggin
2006-09-20 17:19 ` Nick Piggin
2006-09-20 17:30 ` Christoph Lameter
2006-09-20 17:30 ` Christoph Lameter
2006-09-20 18:03 ` Nick Piggin
2006-09-20 18:03 ` Nick Piggin
2006-09-20 17:40 ` Alan Cox
2006-09-20 17:40 ` Alan Cox
2006-09-20 16:27 ` Rohit Seth
2006-09-20 16:27 ` Rohit Seth
[not found] ` <1158751720.8970.67.camel@twins>
[not found] ` <4511626B.9000106@yahoo.com.au>
[not found] ` <1158767787.3278.103.camel@taijtu>
2006-09-20 17:00 ` Nick Piggin
2006-09-20 17:00 ` Nick Piggin
2006-09-20 17:23 ` [ckrm-tech] " Paul Menage
2006-09-20 17:23 ` Paul Menage
2006-09-20 17:36 ` Alan Cox
2006-09-20 17:36 ` Alan Cox
2006-09-20 17:30 ` Nick Piggin
2006-09-20 17:30 ` Nick Piggin
2006-09-20 17:50 ` Rohit Seth
2006-09-20 17:50 ` Rohit Seth
2006-09-20 17:52 ` Christoph Lameter
2006-09-20 17:52 ` Christoph Lameter
2006-09-20 18:06 ` Peter Zijlstra
2006-09-20 18:06 ` Peter Zijlstra
2006-09-20 18:14 ` Rohit Seth
2006-09-20 18:14 ` Rohit Seth
2006-09-20 18:27 ` Peter Zijlstra
2006-09-20 18:27 ` Peter Zijlstra
2006-09-20 18:33 ` [ckrm-tech] " Paul Menage
2006-09-20 18:33 ` Paul Menage
2006-09-20 18:38 ` Rohit Seth
2006-09-20 18:38 ` Rohit Seth
2006-09-20 19:48 ` Paul Jackson
2006-09-20 19:48 ` Paul Jackson
2006-09-20 19:48 ` Christoph Lameter
2006-09-20 19:48 ` Christoph Lameter
2006-09-20 19:51 ` [ckrm-tech] " Paul Menage
2006-09-20 19:51 ` Paul Menage
2006-09-20 18:37 ` Peter Zijlstra
2006-09-20 18:37 ` Peter Zijlstra
2006-09-20 18:57 ` Rohit Seth
2006-09-20 18:57 ` Rohit Seth
2006-09-20 13:06 ` [Devel] " Cedric Le Goater
2006-09-20 16:45 ` Rohit Seth
2006-09-20 16:25 ` Christoph Lameter
2006-09-20 16:44 ` Nick Piggin
2006-09-20 16:48 ` Christoph Lameter
2006-09-20 17:07 ` Nick Piggin
2006-09-20 17:12 ` Christoph Lameter
2006-09-20 22:27 ` Paul Jackson [this message]
2006-09-20 22:59 ` Christoph Lameter
2006-09-20 17:26 ` Rohit Seth
2006-09-20 17:37 ` [ckrm-tech] " Paul Menage
2006-09-20 17:38 ` Christoph Lameter
2006-09-20 17:42 ` [ckrm-tech] " Paul Menage
2006-09-20 18:07 ` Rohit Seth
2006-09-20 19:51 ` Christoph Lameter
2006-09-20 20:06 ` Paul Jackson
2006-09-20 22:58 ` Paul Jackson
2006-09-20 23:02 ` Christoph Lameter
2006-09-20 23:33 ` Rohit Seth
2006-09-20 23:36 ` Christoph Lameter
2006-09-20 23:39 ` Rohit Seth
2006-09-20 23:51 ` Christoph Lameter
2006-09-21 0:05 ` Paul Jackson
2006-09-21 0:09 ` [ckrm-tech] " Paul Menage
2006-09-20 23:26 ` Rohit Seth
2006-09-20 23:31 ` Christoph Lameter
2006-09-21 0:51 ` [Lhms-devel] " KAMEZAWA Hiroyuki
2006-09-21 1:33 ` KAMEZAWA Hiroyuki
2006-09-21 1:36 ` [ckrm-tech] " Paul Menage
2006-09-20 22:51 ` Paul Jackson
2006-09-20 23:01 ` Christoph Lameter
2006-09-20 23:22 ` Rohit Seth
2006-09-20 23:45 ` Paul Jackson
2006-09-20 17:34 ` Alan Cox
2006-09-20 17:15 ` Christoph Lameter
2006-09-20 17:48 ` Alan Cox
2006-09-20 17:35 ` Christoph Lameter
2006-09-20 23:29 ` Paul Jackson
2006-09-20 23:18 ` Paul Jackson
2006-09-20 17:30 ` [ckrm-tech] " Paul Menage
2006-09-20 23:37 ` Paul Jackson
2006-09-20 23:53 ` Paul Menage
2006-09-21 0:07 ` Paul Jackson
2006-09-21 0:10 ` Paul Menage
2006-09-21 0:17 ` Paul Jackson
2006-09-20 18:34 ` Chandra Seetharaman
2006-09-20 18:43 ` Paul Menage
2006-09-20 18:54 ` Chandra Seetharaman
2006-09-20 19:25 ` Paul Menage
2006-09-20 19:35 ` Chandra Seetharaman
2006-09-20 19:57 ` Paul Menage
2006-09-21 0:30 ` Chandra Seetharaman
2006-09-21 0:33 ` Paul Jackson
2006-09-21 0:50 ` Chandra Seetharaman
2006-09-21 0:34 ` Paul Menage
2006-09-20 20:49 ` Paul Jackson
2006-09-20 20:51 ` Paul Menage
2006-09-20 21:04 ` Paul Jackson
[not found] ` <6599ad830609201605s2fc1ccbdse31e3e60a50d56bc@mail.google.com>
2006-09-20 23:54 ` Paul Jackson
2006-09-20 23:57 ` Paul Menage
2006-09-21 0:09 ` Paul Jackson
2006-09-21 1:25 ` Chandra Seetharaman
2006-09-21 0:45 ` Chandra Seetharaman
2006-09-21 0:51 ` Paul Jackson
2006-09-20 19:55 ` Christoph Lameter
2006-09-20 20:27 ` Paul Jackson
2006-09-21 17:02 ` Srivatsa Vaddagiri
2006-09-21 19:29 ` Paul Jackson
2006-09-20 20:11 ` Paul Jackson
2006-09-20 20:17 ` Paul Menage
2006-09-20 19:52 ` Christoph Lameter
2006-09-21 0:31 ` Chandra Seetharaman
2006-09-21 0:36 ` Paul Jackson
2006-09-21 0:42 ` Paul Menage
2006-09-21 1:45 ` Chandra Seetharaman
2006-09-21 1:52 ` Paul Menage
2006-09-21 20:06 ` Chandra Seetharaman
2006-09-21 20:10 ` Paul Menage
2006-09-21 21:44 ` Chandra Seetharaman
2006-09-21 22:09 ` Paul Menage
2006-09-22 0:06 ` Chandra Seetharaman
2006-09-22 0:13 ` Paul Menage
2006-09-22 0:55 ` Chandra Seetharaman
2006-09-22 0:24 ` Paul Jackson
2006-09-22 0:57 ` Chandra Seetharaman
2006-09-22 1:11 ` Paul Jackson
2006-09-21 21:59 ` Paul Jackson
2006-09-21 22:07 ` Paul Menage
2006-09-21 22:48 ` Paul Jackson
2006-09-20 19:09 ` Chandra Seetharaman
2006-09-27 19:50 ` Chandra Seetharaman
2006-09-27 21:28 ` Rohit Seth
2006-09-27 22:24 ` Chandra Seetharaman
2006-09-28 8:01 ` Balbir Singh
2006-09-28 18:31 ` Rohit Seth
2006-09-28 21:53 ` Balbir Singh
2006-09-29 0:22 ` Rohit Seth
2006-09-28 18:12 ` Rohit Seth
2006-09-28 20:23 ` Chandra Seetharaman
2006-09-28 21:38 ` Rohit Seth
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=20060920152753.6f3a3221.pj@sgi.com \
--to=pj@sgi.com \
--cc=ckrm-tech@lists.sourceforge.net \
--cc=clameter@sgi.com \
--cc=devel@openvz.org \
--cc=linux-kernel@vger.kernel.org \
--cc=npiggin@suse.de \
--cc=rohitseth@google.com \
/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.