Tom Lane wrote:
> Magnus Hagander <mag...@hagander.net> writes:
>> ...oom_adj...
> 
> One interesting thing I read there is:
>     Swapped out tasks are killed first. Half of each child's memory size is
>     added to the parent's score if they do not share the same memory.
>                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> This suggests that PG's shared memory ought not be counted in the
> postmaster's OOM score, which would mean that the problem shouldn't be
> quite as bad as we've believed.  I wonder if that is a recent change?
> Or maybe it's supposed to be that way and is not implemented correctly?

The code for oom_kill.c looks fairly readable (link below [1]):

96         points = mm->total_vm;
....
117         list_for_each_entry(child, &p->children, sibling) {
118                 task_lock(child);
119                 if (child->mm != mm && child->mm)
120                         points += child->mm->total_vm/2 + 1;
121                 task_unlock(child);
122         }

Which seems to add points for each child who doesn't share the
same mm structure as the parent.  Which I think is a quite a bit
stricter interpretation of "if they do not share the same memory".



[1] 
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=mm/oom_kill.c;h=f52481b1c1e5442c9a5b16b06b22221b75b9bb7c;hb=HEAD


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to