nginx 작업자 프로세스 수


23

Drupal 설치를 제공하기 위해 nginx를 설정하고 있으며 nginx 작업자 프로세스 설정에서 충돌하는 정보를 찾는 것 같습니다. 한 사이트에는 두 개가 필요하고 하나는 다섯 개가 필요하고 하나는 프로세서 당 하나라고 말합니다.

nginx 작업자 프로세스 수를 어떻게 선택해야합니까? 차이가 있다면 VMWare 클러스터의 게스트 VM이며 가상 프로세서 하나를 제공했습니다.

답변:


16

Nginx는 Apache 및 다른 연결 웹 서버 당 다른 프로세스와 다릅니다. 하나의 마스터 프로세스를 사용하여 실제로 연결을 처리하는 소수의 작업자 프로세스를 시작하고 모니터링합니다. 내 권장 사항은 기본 작업자 수인 1로 시작하는 것입니다.

worker_processes  1;

nginx 작업자가 IO에 너무 많은 시간을 소비하고 있음을 발견 한 경우에만이를 늘리면됩니다. 초당 수백 건의 요청을 처리 할 때까지는 그렇지 않습니다.

이 설정이 유용 할 수도 있습니다.

worker_rlimit_nofile 8192;

events {
    worker_connections  2048;
    use epoll;
}

1
"worker_rlimit_nofile 8192"가 어떤 용도로 사용되는지 설명 할 수 있습니까?
픽셀 개발자

wiki.nginx.org/NginxHttpMainModule#worker_rlimit_nofile . 이것은 작업자에게 ulimit를 늘리도록 지시합니다.
Dave Cheney

15

SMP 시스템에서는 최소 nCPU 작업자 프로세스를 시작해야합니다. 쿼드 코어-4 개 등.

정적 콘텐츠가 많은 일부 사이트를 서비스하려는 경우 디스크 당 하나씩 더 많은 작업자를 추가하는 것이 좋습니다.

디스크 하위 시스템의 성능이 저하되거나 너무 높은 경우 nginx 작업자 프로세스가 I / O 작업에서 잠기고 다른 요청을 처리하지 못할 수 있습니다. 이 경우 작업자 프로세스 수를 적절한 값 (수십)으로 늘리거나 디스크 캐시에 메모리를 추가해야합니다.

"ps ax"인쇄물을 살펴보십시오. "D"상태 인 작업자는 잠겨 있습니다. 최소한 nCPU 작업자 프로세스가 차단되지 않을 때까지 늘리십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.