max_requests

각 워커가 처리할 최대 요청 횟수

이 값을 너무 작게 설정하면 워커가 자주 재시작하여 자원 소비가 늘어날 수 있음

너무 크게 설정하면 메모리 누수 등으로 인해 자원이 과도하게 사용될 수 있음

 

max_requests_jitter

각 워커가 max_requests까지의 요청을 처리한 후에 최대 해당 값만큼의 무작위 지연을 추가할 수 있음

이를 통해 워커들이 동시에 재시작하는 것을 방지하고 부하를 분산할 수 있음

 

 

 

gunicorn -w 40 --max-requests 100 --max-requests-jitter 20 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:{service_port} app:app --preload

 

위 예시는

워커가 40개이고 각 워커가 100회의 요청을 처리하고 난 후, 0~20 중 랜덤만큼의 추가적인 요청을 처리한 후 재시작하는 것이다.

 

테스트 후 적절한 값으로 설정해야 한다.