
우리 사이트에는 12개의 잡종 클러스터가 실행되고 있고 내 로컬 개발 버전에는 5개의 잡종 클러스터가 있습니다. nginx( version: nginx/1.22.0
)가 앞에 위치합니다.
우리 프로세스 중 하나는 명령줄 도구인 wkhtmltopdf를 사용하여 PDF를 만듭니다. wkhtmltopdf는 웹 사이트를 호출하여 페이지를 가져온 다음 PDF로 변환합니다.
페이지에 대한 요청이 껍질을 벗긴 동일한 잡종(항상 잡종 1)으로 이동하는 경우를 제외하고는 작동합니다. 그런 다음 교착 상태가 발생합니다. 첫 번째 요청은 두 번째 요청이 완료되기를 기다리고 있지만 두 번째 요청은 첫 번째 이후 대기열에 있습니다.
Mongrel Top (delay: 0.25) Fri Sep 22 16:47:59 2023
65347 sh -c start -p 3000 & mongrel_rails start -p 3001 & mongrel_rails start -p 3002 & mongrel_rails start -p 3003 & mongrel_rails start -p 3004
65348 [3000/2/11]: handling 127.0.0.1: POST /admin/school_quotes/CMS1Y-187790-107226, 127.0.0.1: GET /
65349 [3001/0/0]: idle
65350 [3002/0/0]: idle
65351 [3003/0/0]: idle
65352 [3004/0/0]: idle
6 process(es)
내 nginx 구성에서 현재 사용 중인 것과 다른 잡종을 사용하도록 노력했지만 성공하지 못했습니다. 항상 무작위로 하나를 선택하는 것처럼 보이므로 선택할 확률은 20%입니다. 같은 것, 그리고 잠그는 것. (그래도 50% 정도 되는 느낌)
관련 nginx 구성 블록은 현재 다음과 같습니다.
upstream elrs {
# least_conn;
# random two;
# round_robin;
zone backends 128k;
server 127.0.0.1:3000 max_conns=1 max_fails=3 fail_timeout=2;
server 127.0.0.1:3001 max_conns=1 max_fails=3 fail_timeout=2;
server 127.0.0.1:3002 max_conns=1 max_fails=3 fail_timeout=2;
server 127.0.0.1:3003 max_conns=1 max_fails=3 fail_timeout=2;
server 127.0.0.1:3004 max_conns=1 max_fails=3 fail_timeout=2;
}
나는 문제를 고칠 수 있을 것이라고 생각하면서 그들 모두를 1로 설정했지만 max_conns
그렇지 않았습니다. 나는 또한 least_conn
옵션을 시도했지만 두 번째 또는 세 번째 시도에서 둘 다 다시 잡종 1로 끝났습니다.
해당 내용을 읽은 후 시도했지만 round_robin
오류가 발생했습니다.nginx: [emerg] unknown directive "round_robin"
어떤 조언이라도 감사드립니다.