* restart-memhogs.sh: Script to restart supervisor controlled apps that consume
too much memory. * startTurboGearsApp.sh: Script to start a TurboGears app from supervisor.
This commit is contained in:
parent
46d694e17a
commit
d474b41029
2 changed files with 46 additions and 0 deletions
31
scripts/tg-support/restart-memhogs.sh
Normal file
31
scripts/tg-support/restart-memhogs.sh
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# Author: Toshio Kuratomi <toshio@fedoraproject.org>
|
||||||
|
# Script to restart supervisor controlled applications if their memory usage
|
||||||
|
# goes over a preset limit.
|
||||||
|
#
|
||||||
|
# This script is run on alternate app servers, checking the memory usage of
|
||||||
|
# each app. If they exceed the maximum memory we've alloted to them, the
|
||||||
|
# script tells supervisor to restart the app.
|
||||||
|
|
||||||
|
# APPS and MEMLIMIT map a supervisor appname to a maximal memory usage.
|
||||||
|
# Note: Only put load balanced apps managed by TG in this var.
|
||||||
|
APPS=('mirrorlist_server' 'mirrormanager' 'packagedb' 'smolt' 'fas')
|
||||||
|
MEMLIMIT=(250000 800000 500000 200000 1000000)
|
||||||
|
# These aren't load balanced yet
|
||||||
|
#APPS=("${APPS[@]}" 'transifex' 'bodhi')
|
||||||
|
#MEMLIMIT=(${MEMLIMIT[@]} 250000 500000)
|
||||||
|
|
||||||
|
for ((i = 0 ; i < ${#APPS[@]} ;i++ )) ; do
|
||||||
|
# Supervisor knows the PID of the processes
|
||||||
|
PID=`supervisorctl status ${APPS[$i]} | sed -e 's/.*pid \([0-9]\+\),.*/\1/'`
|
||||||
|
# Ignore crashed apps or apps not present on this server
|
||||||
|
if test `echo "$PID" | egrep '^[0-9]+$'` ; then
|
||||||
|
# We use Resident Set Size to determine if the app is using too much memory
|
||||||
|
RSS=`ps -eo pid,rss|egrep -w "^[[:space:]]*$PID"| awk '// { print $2 }'`
|
||||||
|
if test "$RSS" -gt ${MEMLIMIT[$i]} ; then
|
||||||
|
# Use supervisor to restart the app
|
||||||
|
echo "Restarting ${APPS[$i]} $PID RSS: $RSS"
|
||||||
|
supervisorctl restart ${APPS[$i]}
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
15
scripts/tg-support/startTurboGearsApp.sh
Normal file
15
scripts/tg-support/startTurboGearsApp.sh
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Starts a turbogears application
|
||||||
|
|
||||||
|
if [ ! $1 ]
|
||||||
|
then
|
||||||
|
echo "Please provide a path to the turbogears startup file and an optional environment"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
DIR=$(/usr/bin/dirname $1)
|
||||||
|
cd $DIR
|
||||||
|
pkill -f "python $1 $2"
|
||||||
|
|
||||||
|
exec /usr/bin/python $1 $2
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue