Re: Memory overcommit

From: David Rientjes
Date: Wed Oct 28 2009 - 01:14:11 EST


On Wed, 28 Oct 2009, KAMEZAWA Hiroyuki wrote:

> not related to child-parent problem.
>
> Seeing this number more.
> ==
> [97137.709272] Active_anon:671487 active_file:82 inactive_anon:132316
> [97137.709273] inactive_file:82 unevictable:50 dirty:0 writeback:0 unstable:0
> [97137.709273] free:6122 slab:17179 mapped:30661 pagetables:8052 bounce:0
> ==
>
> acitve_file + inactive_file is very low. Almost all pages are for anon.
> But "mapped(NR_FILE_MAPPED)" is a little high. This implies remaining file caches
> are mapped by many processes OR some mega bytes of shmem is used.
>
> # of pagetables is 8052, this means
> 8052x4096/8*4k bytes = 16Gbytes of mapped area.
>
> Total available memory is near to be active/inactive + slab
> 671487+82+132316+82+50+6122+17179+8052=835370x4k= 3.2Gbytes ?
> (this system is swapless)
>

Yep:

[97137.724965] 917504 pages RAM
[97137.724967] 69721 pages reserved

(917504 - 69721) * 4K = ~3.23G

> Then, considering the pmap kosaki shows,
> I guess killed ones had big total_vm but has not much real rss,
> and no helps for oom.
>

echo 1 > /proc/sys/vm/oom_dump_tasks can confirm that.

The bigger issue is making the distinction between killing a rogue task
that is using much more memory than expected (the supposed current
behavior, influenced from userspace by /proc/pid/oom_adj), and killing the
task with the highest rss. The latter is definitely desired if we are
allocating tons of memory but reduces the ability of the user to influence
the badness score.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/