Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
P
Postgres FD Implementation
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Abuhujair Javed
Postgres FD Implementation
Commits
f23425fa
Commit
f23425fa
authored
Jul 01, 2014
by
Tom Lane
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve handling of OOM score adjustment in sample Linux start script.
Per a suggestion from Christoph Berg.
parent
5a421a47
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
15 deletions
+19
-15
contrib/start-scripts/linux
contrib/start-scripts/linux
+19
-15
No files found.
contrib/start-scripts/linux
View file @
f23425fa
...
...
@@ -42,18 +42,17 @@ PGLOG="$PGDATA/serverlog"
# It's often a good idea to protect the postmaster from being killed by the
# OOM killer (which will tend to preferentially kill the postmaster because
# of the way it accounts for shared memory). Setting the OOM_SCORE_ADJ value
# to -1000 will disable OOM kill altogether, which is a good thing for the
# postmaster, but not so much for individual backends. If you enable this,
# also uncomment the DAEMON_ENV line, which will instruct backends to set
# their OOM adjustments back to the default setting of zero.
#OOM_SCORE_ADJ=-1000
#DAEMON_ENV="PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj"
# of the way it accounts for shared memory). To do that, uncomment these
# three lines:
#PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj
#PG_MASTER_OOM_SCORE_ADJ=-1000
#PG_CHILD_OOM_SCORE_ADJ=0
# Older Linux kernels may not have /proc/self/oom_score_adj, but instead
# /proc/self/oom_adj, which works similarly except the disable value is -17.
# For such a system, uncomment these two lines instead.
#OOM_ADJ=-17
#DAEMON_ENV="PG_OOM_ADJUST_FILE=/proc/self/oom_adj"
# /proc/self/oom_adj, which works similarly except for having a different
# range of scores. For such a system, uncomment these three lines instead:
#PG_OOM_ADJUST_FILE=/proc/self/oom_adj
#PG_MASTER_OOM_SCORE_ADJ=-17
#PG_CHILD_OOM_SCORE_ADJ=0
## STOP EDITING HERE
...
...
@@ -80,13 +79,19 @@ test -x $DAEMON ||
fi
}
# If we want to tell child processes to adjust their OOM scores, set up the
# necessary environment variables. Can't just export them through the "su".
if
[
-e
"
$PG_OOM_ADJUST_FILE
"
-a
-n
"PG_CHILD_OOM_SCORE_ADJ"
]
then
DAEMON_ENV
=
"PG_OOM_ADJUST_FILE=
$PG_OOM_ADJUST_FILE
PG_OOM_ADJUST_VALUE=
$PG_CHILD_OOM_SCORE_ADJ
"
fi
# Parse command line parameters.
case
$1
in
start
)
echo
-n
"Starting PostgreSQL: "
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
test
-e
"
$PG_OOM_ADJUST_FILE
"
&&
echo
"
$PG_MASTER_OOM_SCORE_ADJ
"
>
"
$PG_OOM_ADJUST_FILE
"
su -
$PGUSER
-c
"
$DAEMON_ENV
$DAEMON
-D '
$PGDATA
' &"
>>
$PGLOG
2>&1
echo
"ok"
;;
...
...
@@ -98,8 +103,7 @@ case $1 in
restart
)
echo
-n
"Restarting PostgreSQL: "
su -
$PGUSER
-c
"
$PGCTL
stop -D '
$PGDATA
' -s -m fast -w"
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
test
-e
"
$PG_OOM_ADJUST_FILE
"
&&
echo
"
$PG_MASTER_OOM_SCORE_ADJ
"
>
"
$PG_OOM_ADJUST_FILE
"
su -
$PGUSER
-c
"
$DAEMON_ENV
$DAEMON
-D '
$PGDATA
' &"
>>
$PGLOG
2>&1
echo
"ok"
;;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment