2017-01-17 1 views
0

gunicorn + 토네이도 4 앱으로 새 유물을 구성하려고합니다.토네이도 4 및 Gunicorn으로 새 유물을 설정할 때 작업자 시간 초과

로컬에서는 gunicorn이없고 (단순히 WSGI 서버로 토네이도가 사용됨) 새 유적 설정이 작동하며 새 유적에서 데이터를 볼 수 있습니다. gunicorn와 함께, 내가 무기한 노동자 타임 아웃 얻을, 생산, 그러나

config_file = os.environ.get('NEW_RELIC_CONFIG_FILE', None) 
if config_file: 
    import newrelic.agent 
    environment = 'production' if IS_PROD else 'development' 
    newrelic.agent.initialize(config_file, environment=environment) 

: 나는 새로운 유물 에이전트를 구성하려면 다음 코드를 사용하고 ...

gunicorn -b 0.0.0.0:8080 -w 3 -p gunicorn.pid -k tornado --access-logfile /var/log/gunicorn_access.log --error-logfile /var/log/gunicorn_error.log myapp.server:make_application\(\) -t 2 --log-level DEBUG --capture-output &> /dev/null & 

[2017-01-17 05:16:37 +0000] [26957] [CRITICAL] WORKER TIMEOUT (pid:26985) 
[2017-01-17 05:16:37 +0000] [26957] [CRITICAL] WORKER TIMEOUT (pid:26986) 
[2017-01-17 05:16:37 +0000] [26957] [CRITICAL] WORKER TIMEOUT (pid:26987) 
[2017-01-17 05:16:37 +0000] [26991] [INFO] Booting worker with pid: 26991 
[2017-01-17 05:16:37 +0000] [26992] [INFO] Booting worker with pid: 26992 
[2017-01-17 05:16:37 +0000] [26993] [INFO] Booting worker with pid: 26993 
[2017-01-17 05:16:40 +0000] [26957] [CRITICAL] WORKER TIMEOUT (pid:26992) 
[2017-01-17 05:16:40 +0000] [26957] [CRITICAL] WORKER TIMEOUT (pid:26993) 
[2017-01-17 05:16:40 +0000] [26957] [CRITICAL] WORKER TIMEOUT (pid:26991) 
[2017-01-17 05:16:40 +0000] [26997] [INFO] Booting worker with pid: 26997 
[2017-01-17 05:16:40 +0000] [26998] [INFO] Booting worker with pid: 26998 
[2017-01-17 05:16:40 +0000] [26999] [INFO] Booting worker with pid: 26999 

위의 에이전트 코드를 주석 처리하고 gunicorn 명령을 실행하면 작업자가 안정적으로 시간 초과되지 않습니다.

로그 수준을 DEBUG로 설정 했음에도 불구하고 gunicorn 작업자가 시간 초과되어 무기한으로 재부팅되는 이유의 근본 원인을 찾을 수 없습니다. 위의 새로운 유적 에이전트 코드가 범인이라는 것만 알면됩니다.

로컬에서 New Relic과 성공적으로 통합 할 수 있기 때문에 newrelic.ini와 위의 새로운 유적 에이전트 코드가 괜찮다고 생각합니다. Gunicorn이 어떻게 든 엉망으로 만들었지 만 문제 해결을 시작해야하는 방법이나 위치가 확실합니다.

내가 사용하고 있습니다 :

newrelic==2.78.0.57 
gunicorn==19.6.0 
tornado==4.4 

답변

0

와우, 그것은 메모리 문제 었죠. 3 대신 1 명의 작업자를 생성하면 모든 것이 작동합니다. 새로운 유적 계기판은 가장자리를 통해 내 메모리 사용량을 간신히 지적했습니다.

관련 문제