>  기사  >  운영 및 유지보수  >  Nginx 서버 프로세스 수 설정 방법 및 멀티 코어 CPU 활용 방법

Nginx 서버 프로세스 수 설정 방법 및 멀티 코어 CPU 활용 방법

WBOY
WBOY앞으로
2023-05-12 09:46:052009검색

nginx 구성 파일 nginx.conf

먼저 다음 작업을 수행하려면 nginx 구성 파일 nginx.conf를 찾아야 합니다. lnmp 원클릭 설치 패키지의 기본 구성에서 nginx.conf는

에 저장됩니다.
/usr/local/nginx/conf/nginx.conf

다른 환경의 경우 nginx 설치 시

find / -name nginx.conf

를 사용하여 구성 파일의 저장 경로를 찾을 수 있습니다.

nginx 작업자 프로세스 번호 설정

nginx 구성 문서 nginx.conf에서는 nginx 프로세스 수를 변경하기 위해 작업자 프로세스를 설정할 수 있습니다. nginx 작업자 프로세스 수에 대한 이 Q&A 수에 따라 nginx 작업자 프로세스 수를 설정하는 것이 좋습니다. 왜냐하면 :

하지만 우리의 목적은 서로 다른 코어의 CPU에서 실행되도록 서로 다른 작업자_프로세스 프로세스를 할당하는 것이므로 현재 vps 공급자 linode의 512 구성을 예로 들면 서버 편에는 8개의 논리 CPU가 있지만 사용자는 저는 4개의 논리적 CPU만 확보하므로 여기서는 3개의 Worker_processes 프로세스를 실행하도록 설정했습니다. 그 이유는 기본적으로 다른 프로그램이 첫 번째 논리적 CPU(cpu0)에서 실행되기 때문입니다. 세 개의 다른 논리적 CPU(cpu1, cpu2, cpu3)에서 실행되는 세 개의 프로세스:

worker_processes 3;

일반적으로 여러 개의 논리적 CPU가 있는 경우 여러 개의 Worker_processes를 설정하는 것이 적절하지만 Worker_processes가 8을 초과하는 것은 의미가 없습니다. 위의 영어 문단에 언급된 이유.

현재 CPU 상황을 볼 수 있도록이 명령을 사용하거나 논리적 CPU의 수를 직접 표시 할 수 있습니다. 예제에 따르면 0001 0010 0100 1000은 각각 첫 번째, 두 번째, 세 번째 및 네 번째 논리 CPU를 나타내는 것을 볼 수 있으므로 3개의 프로세스를 두 번째 논리 CPU에 바인딩하도록 0010 0100 1000을 설정할 수 있습니다. , 3, 4개의 논리적 CPU:

cat /proc/cpuinfo

동시에, 작업자_cpu_affinity가 동일한 프로세스를 2개의 논리적 CPU(1번째와 3번째)에 바인딩할 수 있다는 것도 확인할 수 있습니다. 논리 CPU에서 1010은 두 번째 및 네 번째 논리 CPU에 있습니다.
멀티 코어 CPU 설정을 활성화하고 테스트하기 위한 nginx 프로세스 할당

nginx.conf 파일을 저장하고 nginx 구성 파일을 다시 로드합니다.

cat /proc/cpuinfo |grep "processor"|wc -l

테스트하려면 Apache가 설치된 다른 호스트에서 ab를 실행하세요.

ab -n 20000 -k http://www.1990y.com/p.php

mysql 쿼리가 필요한 PHP 페이지를 테스트할 수도 있고, 정적 이미지나 페이지를 테스트할 수도 있습니다.


테스트된 서버에서는 top을 사용하여 현재 서버 상황을 확인한 다음 1을 눌러 각 논리 CPU의 사용량을 표시할 수 있습니다.


CPU 멀티 코어 활용 활성화


규칙 설정

(1) CPU에 있는 코어 수, 여러 자리 숫자, 1은 코어가 켜져 있음을 의미하고 0은 코어가 꺼져 있음을 의미

(2) 작업자_프로세스가 열 수 있음 최대 8, 8 위의 성능은 더 이상 향상되지 않으며 안정성도 낮아지므로 8개의 프로세스이면 충분합니다

데모 예

2코어 CPU, 두 개의 프로세스 열기

worker_processes 3;
worker_cpu_affinity 0010 0100 1000;

01은 첫 번째 프로세스가 활성화되었음을 의미합니다. CPU 코어, 10은 두 번째 CPU 코어가 활성화되었음을 의미합니다

worker_cpu_affinity 01 10; 두 개의 프로세스가 활성화되었음을 의미합니다. 첫 번째 프로세스는 첫 번째 CPU 코어에 해당하고 두 번째 프로세스는 두 번째 CPU 코어에 해당합니다

two Core CPU, open 8 프로세스

worker_processes 2;
worker_cpu_affinity 0101 1010;

8개의 프로세스가 열리면 각각 2개의 코어를 여는 것에 해당합니다


8 코어 CPU, 8개의 프로세스를 엽니다

/usr/local/nginx/sbin/nginx -s reload

00000001은 첫 번째 CPU 코어를 여는 것을 의미하고, 00000010은 세 번째 CPU 코어를 여는 것을 의미합니다. 두 개의 CPU 코어 등

8코어 CPU, 2개 프로세스 시작

  worker_processes 2; 
  worker_cpu_affinity 01 10;
10101010은 2번째, 4번째, 6번째, 8번째 코어 시작을 의미하고, 01010101은 1번째, 3번째, 5번째, 7번째 코어 시작을 의미합니다

2개의 프로세스는 8개 코어에 해당


Restart nginx

구성이 완료되면 nginx 서비스를 다시 시작해야 합니다

  worker_processes 8; 
  worker_cpu_affinity 01 10 01 10 01 10 01 10;

위 내용은 Nginx 서버 프로세스 수 설정 방법 및 멀티 코어 CPU 활용 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제