Nginx 서버 프로 세 스 수 설정 및 다 중 핵 CPU 활용 방법

3921 단어
Nginx 프로필 nginx. conf
먼저 Nginx 의 프로필 nginx. conf 를 찾 아야 다음 작업 을 할 수 있 습 니 다. LNMP 원 키 설치 패키지 기본 설정 에서 nginx. conf 를 저장 합 니 다.

/usr/local/nginx/conf/nginx.conf

다른 환경 에서 Nginx 를 설치 하면 사용 할 수 있 습 니 다.

find / -name nginx.conf

프로필 의 저장 경 로 를 찾 습 니 다.
Nginx worker_프로 세 스 프로 세 스 수 설정
Nginx 설정 문서 nginx. conf 에 worker 를 설정 할 수 있 습 니 다.processes 는 Nginx 의 프로 세 스 수 를 변경 합 니 다. 이 문답 number of nginx worker processes 에 따 르 면 Nginx worker 를 권장 합 니 다.processes 프로 세 스 수 를 1 로 설정 합 니 다. 왜냐하면:
하지만 우리 의 목적 은 다른 워 커 를processes 프로 세 스 가 서로 다른 핵 에 있 는 CPU 에 할당 되 어 실 행 됩 니 다. 그래서 현재 VPS 공급 업 체 리 노 드 의 512 설정 을 예 로 들 면 서버 암탉 은 8 개의 논리 CPU 를 가지 고 있 지만 사용자 로 서 4 개의 논리 CPU 만 얻 었 습 니 다. 그래서 여기 서 저 는 3 개의 worker 를 실행 하 는 것 으로 설정 합 니 다.processes 프로 세 스 는 기본 적 인 상황 에서 다른 프로그램 이 첫 번 째 논리 CPU (CPU 0) 에서 실행 되 기 때 문 입 니 다. 다른 프로그램 에 영향 을 주지 않 기 위해 서 이 세 프로 세 스 를 다른 3 개의 논리 CPU (CPU 1, CPU 2, CPU 3) 에 할당 하여 실행 합 니 다.

worker_processes 3;


일반적으로 논리 CPU 가 몇 개 있 으 면 워 커 로 설정 합 니 다.processes 가 적당 하지만 worker프로 세 스 가 8 개 를 넘 으 면 큰 의미 가 없다. 그 이 유 는 위의 영어 에서 이미 언급 되 었 기 때문이다.
이 명령 을 사용 하여 현재 CPU 상 태 를 볼 수 있 습 니 다:

cat /proc/cpuinfo

또는 논리 CPU 의 개 수 를 직접 표시 합 니 다:

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

Nginx worker_cpu_affinity 설정
Nginx Wiki 의 자료 에 따 르 면:
worker_cpu_affinity 는 기본적으로 열 리 지 않 았 습 니 다. 예 를 들 어 0001 0010 0100 1000 은 각각 1, 2, 3, 4 개의 논리 CPU 를 대표 하기 때문에 우 리 는 0010 0100 1000 을 설정 하여 3 개의 프로 세 스 를 각각 2, 3, 4 개의 논리 CPU 에 연결 할 수 있 습 니 다.

worker_processes 3;
worker_cpu_affinity 0010 0100 1000;

동시에 예 를 들 어 우리 도 알 수 있 듯 이 워 커cpu_affinity 는 같은 프로 세 스 를 2 개의 논리 CPU 에 연결 할 수 있 습 니 다:

worker_processes 2;
worker_cpu_affinity 0101 1010;

0101 즉 1, 3 번 째 논리 CPU 에 1010 이 2, 4 번 째 논리 CPU 에 있다.Nginx 프로 세 스 가 다 중 핵 CPU 설정 을 사용 하고 테스트 합 니 다.
nginx. conf 파일 을 저장 하고 Nginx 프로필 을 다시 불 러 옵 니 다.

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

Apache 가 설 치 된 다른 호스트 에서 ab 를 실행 하여 테스트 합 니 다: ab - n 20000 - khttp://www.1990y.com/p.php MySQL 조회 가 필요 한 PHP 페이지 를 테스트 할 수도 있 고 정적 그림 이나 페이지 를 테스트 할 수도 있 습 니 다.
테스트 대상 서버 에서 top 을 사용 하여 현재 서버 상황 을 보고 1 을 누 르 면 각 논리 CPU 의 사용 상황 을 표시 할 수 있 습 니 다.
CPU 다 핵 이용 오픈
규칙 설정 (1) cpu 에 핵 이 몇 개 있 으 면 몇 자리 가 있 습 니 다. 1 은 커 널 이 열 리 는 것 을 의미 하고 0 은 커 널 이 닫 히 는 것 을 의미 합 니 다 (2) workerprocesses 는 최대 8 개 까지 열 리 고 8 개 이상 의 성능 은 더 이상 향상 되 지 않 으 며 안정성 이 더 낮 아 지기 때문에 8 개의 프로 세 스 가 충분 합 니 다.
인 스 턴 스 두 핵 cpu 를 보 여 주 며 두 프로 세 스 를 시작 합 니 다.

  worker_processes 2; 
  worker_cpu_affinity 01 10; 


01. 첫 번 째 cpu 커 널 을 사용 하 였 음 을 표시 합 니 다. 10 은 두 번 째 cpu 커 널 worker 를 사용 하 였 음 을 표시 합 니 다.cpu_affinity 01 10;두 프로 세 스 가 열 렸 음 을 표시 합 니 다. 첫 번 째 프로 세 스 는 첫 번 째 cpu 커 널 에 대응 하고 두 번 째 프로 세 스 는 두 번 째 cpu 커 널 에 대응 합 니 다.
두 핵 cpu, 8 프로 세 스 시작

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


8 개의 프로 세 스 를 열 었 습 니 다. 각각 2 개의 커 널 을 열 었 습 니 다.
8 핵 cpu, 8 프로 세 스 시작

  worker_processes 8; 
  worker_cpu_affinity 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001; 


0000001 은 첫 번 째 cpu 커 널 을 열 었 음 을 나타 내 고 00000010 은 두 번 째 cpu 커 널 을 열 었 음 을 나타 내 며 순서대로 유추 합 니 다.
8 핵 cpu, 2 프로 세 스 시작

  worker_processes 2; 
  worker_cpu_affinity 10101010 01010101; 


10101010 은 2, 4, 6, 8 커 널 을 열 었 음 을 나타 내 고 01010101 은 1, 3, 5, 7 커 널 2 개의 프로 세 스 가 8 개의 커 널 에 대응 하고 있다 는 것 을 나타 낸다.
nginx 설정 을 다시 시작 하려 면 nginx 서 비 스 를 다시 시작 해 야 합 니 다.

  /etc/init.d/nginx restart 


좋은 웹페이지 즐겨찾기