Re: /proc/self/oom_adj is deprecated in newer Linux kernels

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: /proc/self/oom_adj is deprecated in newer Linux kernels
Дата
Msg-id 30402.1402412692@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: /proc/self/oom_adj is deprecated in newer Linux kernels  (Andres Freund <andres@2ndquadrant.com>)
Ответы Re: /proc/self/oom_adj is deprecated in newer Linux kernels
Список pgsql-hackers
Andres Freund <andres@2ndquadrant.com> writes:
> Independent of the rest of the discussion, I think there's one more
> point: Trying to keep your system stable by *increasing* the priority of
> normal backends is a bad idea. If you system gets into OOM land you need
> to fix that, not whack who gets killed around.
> The reason it makes sense to increase the priority of the postmaster is
> that that *does* increase the stability by cleaning up resources and
> restarting everything.

That's half of the reason.  The other half is that, at least back when
we added this code, the Linux kernel's victim-selection code
disproportionately chose to kill the postmaster rather than any child
backend, an outcome definitely not to be preferred.  IIRC this was because
it blamed the postmaster for the sum of childrens' memory sizes *including
shared memory*, counting the shared memory over again for each child.

I don't know whether our switch away from SysV shmem has helped that, or
if recent kernel versions have less brain-dead OOM victim selection.
I'm not terribly hopeful though.

But anyway, yeah, the point of this feature is that the OOM priority
of the postmaster, and *only* the postmaster, should be raised.  Allowing
unprivileged people to break that is not attractive on any level.
        regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: why postgresql define NTUP_PER_BUCKET as 10, not other numbers smaller
Следующее
От: Tom Lane
Дата:
Сообщение: Re: /proc/self/oom_adj is deprecated in newer Linux kernels