2012-07-01 5 views
1

Gunicorn을 Eventlet 작업자 유형으로 배포하고 하나의 프로세스 만 사용하는 경우 작업 포트에서 기본 작업자 연결 인 1000 개를 처리하기 위해 어떤 일이 발생합니까? Django의 각 부분에 복사되는 부분은 무엇입니까? 복사 된 부분이 있습니까?Eventlet + Gunicorn 작업자 스레드는 어떻게됩니까?

답변

3

gunicorn 구성에서 workers = 1을 설정하면 마스터 프로세스 1 개와 작업자 프로세스 1 개라는 두 개의 프로세스가 생성됩니다.

worker_class = eventlet을 사용하면 동시 연결은 녹색 스레드로 처리됩니다. 녹색 스레드는 실제 스레드와 다릅니다. 간단히 말해서 녹색 스레드는 함수가 I/O 연산을 만날 때마다 yield 함수 (coroutines)입니다.

아무 것도 복사되지 않습니다. 모든 I/O 작업을 '녹색'으로 만드는 것에 대해 걱정할 필요가 있습니다.

+0

이렇게하면 모든 스레드가 공유하는 장고 인스턴스 하나가 메모리에 저장된다는 것을 의미합니까? – Carson

+0

스레드가 없습니다. eventlet을 사용하면 실제로 greenthreads가 작성됩니다. 당신의 api가 많은 시간을 소비하지 않을 때 다른 말로 IO 바인딩 될 때 좋습니다. 모든 것은 비동기 적으로 단일 스레드에서 실행됩니다. –

+0

예, 모든 녹색 스레드가 장고 한 인스턴스를 공유하게됩니다. – temoto

관련 문제