WORKER TIMEOUT
애플리케이션이 정의 된 시간 내에 요청에 응답 할 수 없음을 의미합니다. gunicorn 시간 제한 설정을 사용하여 이를 설정할 수 있습니다 . 일부 응용 프로그램은 다른 응용 프로그램보다 응답하는 데 더 많은 시간이 필요합니다.
이에 영향을 줄 수있는 또 다른 것은 작업자 유형을 선택하는 것입니다
기본 동기 워커는 애플리케이션이 CPU 및 네트워크 대역폭 측면에서 리소스 바인딩 된 것으로 가정합니다. 일반적으로 이는 응용 프로그램이 정의되지 않은 시간이 걸리는 작업을 수행해서는 안됨을 의미합니다. 정의되지 않은 시간이 걸리는 예는 인터넷에 대한 요청입니다. 클라이언트가 서버에 쌓이는 방식으로 외부 네트워크에 장애가 발생합니다. 따라서 이러한 의미에서 API로 나가는 요청을하는 웹 응용 프로그램은 비동기 작업자의 혜택을받습니다.
Docker Swarm을 사용하여 응용 프로그램을 배포하려고 시도했을 때와 동일한 문제가 발생하면 시간 초과를 늘리고 다른 유형의 작업자 클래스를 사용하려고했습니다. 그러나 모두 실패했습니다.
그리고 갑자기 작성 파일 내부의 서비스에 대해 자원을 너무 낮게 제한한다는 것을 깨달았습니다 . 이것은 내 경우에 응용 프로그램을 느리게 한 것입니다.
deploy:
replicas: 5
resources:
limits:
cpus: "0.1"
memory: 50M
restart_policy:
condition: on-failure
먼저 응용 프로그램 속도를 늦추는 것이 무엇인지 확인하는 것이 좋습니다.
Gunicorn==19.3.1
와gevent==1.0.1