NGINX - 04. nginx.conf 의 worker_processes 설정

 

etc-image-0

 

 

worker_processes

 

/etc/nginx/nginx.conf

etc-image-1

 

worker_processes 지시문 문법

컨텍스트 위치: main

worker_processes number | auto;

ex)

- worker_processes 1;

- worker_processes auto;

 

필자의 구성은 auto 이다.

따라서, 리눅스의 CPU 코어 수에 맞게 자동으로 worker_processes 갯수가 생성된다.

 

단순하게 worker_processes 갯수가 많다고 성능이 향상되는 것은 아니다.

하드웨어의 CPU 코어 수에 맞게 설정해줘야 한다.

 

그 이유는 nginx 는 event drive 방식으로 사용자의 HTTP/HTTPS 요청을 처리하는데,

해당 요청을 worker_process 간 효율적으로 분산한다.

 

따라서, CPU 코어가 1개인데, worker_process 프로세스를 2개로 띄어서 사용한다는 것은

동일한 작업을 1번 워커 프로세스와 2번 워커 프로세스가 Context Switching 을 발생하면서 작업하는 것을 의미한다.

 

흙 파는 작업을 할 때, 2명이서 하나의 굴착기를 가지고 서로 한 번씩 굴착기에 올라갔다 내려갔다하면서 땅을 파는 것보다

혼자서 굴착기 하나로 파는 것이 더 빠른 것과 같다.

 

이때 이 작업을 지켜보는 현장 감독관이 있는데, 그게 바로 master process 이다.

 

nginx 는 master process 와 worker process 로 구성되어 있고, 실제로 작업하는 프로세스는 worker process 이다.

master process 는 nginx 설정파일의 유효성을 검사하고 worker process 를 관리한다.

 

etc-image-2

 

 

nginx 실행 후 프로세스를 확인해보면, master 프로세스, worker 프로세스를 확인할 수 있다.

 

etc-image-3