Gunicorn CPU 使用率约为 100%

Dmi*_*lov 7 linux webserver gunicorn

有时我的网络服务器会停止响应。

我发现此时 Gunicorn 进程的 CPU 负载约为 100%。我已经有一段时间没有更改代码库了,所以我认为这不会导致这种情况。

这是我用来运行 Gunicorn 的 bash 脚本:

#!/bin/bash

source /etc/profile.d/myapp.sh

NAME="myapp-web-services"
DJANGODIR="/home/myapp/myapp-web-services"
SOCKFILE=/tmp/myapp-web-services.sock
USER=myapp
GROUP=myapp
NUM_WORKERS=9
TIMEOUT=100
DJANGO_WSGI_MODULE=settings.wsgi

echo "Starting $NAME as `whoami`"

cd $DJANGODIR
source /home/myapp/.virtualenvs/myapp-web-services/bin/activate
export PYTHONPATH=$DJANGODIR:$PYTHONPATH

RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR

exec newrelic-admin run-program /home/myapp/.virtualenvs/myapp-web-services/bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
  --name $NAME \
  --workers $NUM_WORKERS \
  --user=$USER --group=$GROUP \
  --bind=unix:$SOCKFILE \
  --log-level=warning \
  --timeout=$TIMEOUT \
  --log-file=- \
  --max-requests=1200
Run Code Online (Sandbox Code Playgroud)

我的系统中有 4 个 CPU,因此根据文档,9 个工作线程应该没问题。