Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
postgres-lambda-diff
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jakob Huber
postgres-lambda-diff
Commits
f23425fa
Commit
f23425fa
authored
10 years ago
by
Tom Lane
Browse files
Options
Downloads
Patches
Plain Diff
Improve handling of OOM score adjustment in sample Linux start script.
Per a suggestion from Christoph Berg.
parent
5a421a47
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
contrib/start-scripts/linux
+19
-15
19 additions, 15 deletions
contrib/start-scripts/linux
with
19 additions
and
15 deletions
contrib/start-scripts/linux
+
19
−
15
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"
;;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment