Re: contrib/start-scripts/linux failing on RHEL 6 with ~9.3 because of missing oom_score_adj

From: Michael Paquier <michael(dot)paquier(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: contrib/start-scripts/linux failing on RHEL 6 with ~9.3 because of missing oom_score_adj
Date: 2015-04-26 03:35:47
Message-ID: CAB7nPqSZatgCwvUZKHV313OhBFW5X+X+o7F=jHDuvr=8cR9owA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Sun, Apr 26, 2015 at 8:47 AM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Michael Paquier <michael(dot)paquier(at)gmail(dot)com> writes:
>> Support for oom_score_adj has been added in kernel 2.6.36, a version
>> newer than 2.6.32-71 which is embedded in RHEL6, so the startup script
>> contrib/start-scripts/linux would fail because it does not check for
>> the presence of oom_score_adj before adding the value of OOM_SCORE_ADJ
>> to it.
>
> I'm not sure where you draw the conclusion that RHEL6 doesn't have
> oom_score_adj. Mine certainly does:
>
> [tgl(at)sss1 pgsql]$ uname -a
> Linux sss1.sss.pgh.pa.us 2.6.32-504.16.2.el6.x86_64 #1 SMP Tue Mar 10 17:01:00 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
>
> [tgl(at)sss1 pgsql]$ ls /proc/self/
> attr/ coredump_filter io mountstats pagemap stack
> autogroup cpuset limits net/ personality stat
> auxv cwd@ loginuid ns/ root@ statm
> cgroup environ maps numa_maps sched status
> clear_refs exe@ mem oom_adj schedstat syscall
> cmdline fd/ mountinfo oom_score sessionid task/
> comm fdinfo/ mounts oom_score_adj smaps wchan
>
> I'm prepared to believe that the original upstream 2.6.32 didn't have
> oom_score_adj, but Red Hat often back-ports kernel features.

Well, it may have been a different version then because I was reported
by a colleague that this was failing because of oom_score_adj missing
;)

>> We could argue that this is not directly a problem of PG itself as one
>> could just copy the startup script from the code tree to create its
>> own service script and fix it, still I am getting the feeling that we
>> should show a better logic with something like the patch attached.
>
> This patch seems completely wrong, as it is forcing use of the oom
> adjustment, whereas the intention is that the user should choose
> if they want to use it; cf /contrib/start-scripts/linux lines 43-55.

On REL9_3_STABLE, the condition the startup script has is that:
test x"$OOM_SCORE_ADJ" != x && echo "$OOM_SCORE_ADJ" > /proc/self/oom_score_adj
test x"$OOM_ADJ" != x && echo "$OOM_ADJ" > /proc/self/oom_adj

My patch was adding a condition to check the existence of
/proc/self/oom_score_adj and /proc/self/oom_adj, leaving OOM_ADJ and
OOM_SCORE_ADJ uncommented, so the value will not be set if user does
not uncomment it. But perhaps I am missing something.

> Also, it kind of looks like you are working with something older
> than what is in HEAD, anyway.

The previous patch applies to REL9_3_STABLE and older, not newer
versions FWIW. Sorry for not being clearer about that.
Regards,
--
Michael

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Fabien COELHO 2015-04-26 12:47:13 Re: BUG #12379: pgbench should hint to pgbench -i
Previous Message Tom Lane 2015-04-25 23:47:54 Re: contrib/start-scripts/linux failing on RHEL 6 with ~9.3 because of missing oom_score_adj