From: Balbir Singh <balbir@linux.vnet.ibm.com>
To: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: "linux-mm@kvack.org" <linux-mm@kvack.org>,
Andrew Morton <akpm@linux-foundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"nishimura@mxp.nes.nec.co.jp" <nishimura@mxp.nes.nec.co.jp>
Subject: Re: [RFC] Shared page accounting for memory cgroup
Date: Thu, 7 Jan 2010 14:04:40 +0530 [thread overview]
Message-ID: <20100107083440.GS3059@balbir.in.ibm.com> (raw)
In-Reply-To: <20100107163610.aaf831e6.kamezawa.hiroyu@jp.fujitsu.com>
* KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> [2010-01-07 16:36:10]:
> On Thu, 7 Jan 2010 12:45:54 +0530
> Balbir Singh <balbir@linux.vnet.ibm.com> wrote:
>
> > * KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> [2010-01-06 16:12:11]:
> > > And piles up costs ? I think cgroup guys should pay attention to fork/exit
> > > costs more. Now, it gets slower and slower.
> > > In that point, I never like migrate-at-task-move work in cpuset and memcg.
> > >
> > > My 1st objection to this patch is this "shared" doesn't mean "shared between
> > > cgroup" but means "shared between processes".
> > > I think it's of no use and no help to users.
> > >
> >
> > So what in your opinion would help end users? My concern is that as
> > we make progress with memcg, we account only for privately used pages
> > with no hint/data about the real usage (shared within or with other
> > cgroups).
>
> The real usage is already shown as
>
> [root@bluextal ref-mmotm]# cat /cgroups/memory.stat
> cache 7706181632
> rss 120905728
> mapped_file 32239616
>
> This is real. And "sum of rss - rss+mapped" doesn't show anything.
>
> > How do we decide if one cgroup is really heavy?
> >
>
> What "heavy" means ? "Hard to page out ?"
>
Heavy can also indicate, should we OOM kill in this cgroup or kill the
entire cgroup? Should we add or remove resources from this cgroup?
> Historically, it's caught by pagein/pageout _speed_.
> "How heavy memory system is ?" can only be measured by "speed".
Not really... A cgroup might be very large with a large number of its
pages shared and frequently used. How do we detect if this cgroup
needs its resources or its taking too many of them.
> If you add latency-stat for memcg, I'm glad to use it.
>
> Anyway, "How memory reclaim can go successfully" is generic problem rather
> than memcg. Maybe no good answers from VM guys....
> I think you should add codes to global VM rather than cgroup.
>
No.. this is not for reclaim
> "How pages are shared" doesn't show good hints. I don't hear such parameter
> is used in production's resource monitoring software.
>
You mean "How many pages are shared" are not good hints, please see my
justification above. With Virtualization (look at KSM for example),
shared pages are going to be increasingly important part of the
accounting.
>
> > > And implementation is 2nd thing.
> > >
> >
> > More details on your concern, please!
> >
> I already wrote....why do you want to make fork()/exit() slow for a thing
> which is not necessary to be done in atomic ?
>
So your concern is about iterating through the tasks in cgroup, I can
think of an alternative low cost implementation if possible
> There are many hosts which has thousands of process and a cgrop may contain
> thousands of process in production server.
> In that situation, How the "make kernel" can slow down with following ?
> ==
> while true; do cat /cgroup/memory.shared > /dev/null; done
> ==
This is the worst case usage scenario that would be effected even if
memory.shared were replaced by tasks.
>
> In a word, the implementation problem is
> - An operation against a container can cause generic system slow down.
> Then, I don't like heavy task move under cgroup.
>
>
> Yes, this can happen in other places (we have to do some improvements).
> But this is not good for a concept of isolation by container, anyway.
Thanks for the review!
--
Balbir
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2010-01-07 8:34 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-29 18:27 [RFC] Shared page accounting for memory cgroup Balbir Singh
2010-01-03 23:51 ` KAMEZAWA Hiroyuki
2010-01-04 0:07 ` Balbir Singh
2010-01-04 0:35 ` KAMEZAWA Hiroyuki
2010-01-04 0:50 ` Balbir Singh
2010-01-06 4:02 ` KAMEZAWA Hiroyuki
2010-01-06 7:01 ` Balbir Singh
2010-01-06 7:12 ` KAMEZAWA Hiroyuki
2010-01-07 7:15 ` Balbir Singh
2010-01-07 7:36 ` KAMEZAWA Hiroyuki
2010-01-07 8:34 ` Balbir Singh [this message]
2010-01-07 8:48 ` KAMEZAWA Hiroyuki
2010-01-07 9:08 ` KAMEZAWA Hiroyuki
2010-01-07 9:27 ` Balbir Singh
2010-01-07 23:47 ` KAMEZAWA Hiroyuki
2010-01-17 19:30 ` Balbir Singh
2010-01-18 0:05 ` KAMEZAWA Hiroyuki
2010-01-18 0:22 ` KAMEZAWA Hiroyuki
2010-01-18 0:49 ` Daisuke Nishimura
2010-01-18 8:26 ` Balbir Singh
2010-01-19 1:22 ` Daisuke Nishimura
2010-01-19 1:49 ` Balbir Singh
2010-01-19 2:34 ` Daisuke Nishimura
2010-01-19 3:52 ` Balbir Singh
2010-01-20 4:09 ` Daisuke Nishimura
2010-01-20 7:15 ` Daisuke Nishimura
2010-01-20 7:43 ` KAMEZAWA Hiroyuki
2010-01-20 8:18 ` Balbir Singh
2010-01-20 8:17 ` Balbir Singh
2010-01-21 1:04 ` Daisuke Nishimura
2010-01-21 1:30 ` KAMEZAWA Hiroyuki
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=20100107083440.GS3059@balbir.in.ibm.com \
--to=balbir@linux.vnet.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nishimura@mxp.nes.nec.co.jp \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).