CPU 파라미터 설정 을 통한 workercpu_affinity nginx 성능 향상

3731 단어 worker
소개 Nginx 는 기본적으로 다 핵 cpu 를 사용 하지 않 았 습 니 다. worker 를 추가 할 수 있 습 니 다.cpu_affinity 설정 매개 변 수 는 다 핵 cpu 의 성능 을 충분히 이용 합 니 다.cpu 는 작업 처리 로 가장 관건 적 인 자원 을 계산 합 니 다. cpu 핵 이 많 을 수록 성능 이 좋 습 니 다.규칙 설정 (1) cpu 에 핵 이 몇 개 있 으 면 몇 자리 가 있 습 니 다. 1 은 커 널 이 열 리 는 것 을 의미 하고 0 은 커 널 이 닫 히 는 것 을 의미 합 니 다.
(2)worker_processes 는 최대 8 개 까지 열 리 고 8 개 이상 의 성능 은 더 이상 향상 되 지 않 으 며 안정성 이 더 낮 아 지기 때문에 8 개의 프로 세 스 가 충분 합 니 다.
예제: linode VPS 최소 설정, 8 핵 CPU, nginx 설정 정보:
worker_processes 8;
worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

CPU 작업 상태: (top 입력 후 1 을 누 르 면 확인)
 
top - 11:16:56 up 39 days,  1:16,  2 users,  load average: 0.09, 0.07, 0.10
Tasks: 134 total,   1 running, 133 sleeping,   0 stopped,   0 zombie
Cpu0  :  0.0%us,  0.0%sy,  0.0%ni, 95.1%id,  0.0%wa,  0.0%hi,  0.0%si,  4.9%st
Cpu1  :  0.0%us,  0.0%sy,  0.0%ni, 98.8%id,  0.0%wa,  0.0%hi,  0.0%si,  1.2%st
Cpu2  :  2.3%us,  0.0%sy,  0.0%ni, 92.8%id,  0.0%wa,  0.0%hi,  0.0%si,  4.9%st
Cpu3  :  4.6%us,  9.2%sy,  0.0%ni, 81.2%id,  0.0%wa,  0.0%hi,  0.0%si,  5.0%st
Cpu4  :  1.9%us,  0.0%sy,  0.0%ni, 96.1%id,  0.0%wa,  0.0%hi,  0.0%si,  1.9%st
Cpu5  :  0.0%us,  0.0%sy,  0.0%ni, 98.1%id,  0.0%wa,  0.0%hi,  0.0%si,  1.9%st
Cpu6  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Cpu7  :  0.0%us,  0.0%sy,  0.0%ni, 96.9%id,  0.0%wa,  0.0%hi,  0.0%si,  3.1%st
Mem:   1024884k total,   891244k used,   133640k free,   144852k buffers
Swap:   262140k total,     4172k used,   257968k free,   434072k cached

 
위의 설정 은 8 핵 CPU, 8 개의 프로 세 스 를 엽 니 다.0000001 은 첫 번 째 cpu 커 널 을 열 었 음 을 나타 내 고 00000010 은 두 번 째 cpu 커 널 을 열 었 음 을 나타 내 며 순서대로 유추 합 니 다.핵 이 몇 개 있 으 면 몇 자리 가 있 고, 1 은 이 커 널 이 열 렸 음 을 나타 내 며, 0 은 이 커 널 이 닫 혔 음 을 나타 낸다.
설정 인 스 턴 스:
1, 2 핵 CPU, 2 프로 세 스 시작
 
worker_processes  2;  
worker_cpu_affinity 01 10;

2, 2 핵 CPU, 4 프로 세 스 시작
worker_processes 4;
worker_cpu_affinity 01 10 01 10;

3, 2 핵 CPU, 8 프로 세 스 시작
 
 
worker_processes  8;  
worker_cpu_affinity 01 10 01 10 01 10 01 10;

 
4, 8 핵 CPU, 2 프로 세 스 시작
 
worker_processes  2;  
worker_cpu_affinity 10101010 01010101;

설명: 10101010 은 2, 4, 6, 8 커 널 을 열 었 다 는 뜻 이 고 01010101 은 1, 3, 5, 7 커 널 을 시작 했다 는 뜻 이다. apache ab 테스트 를 통 해 nginx 의 CPU 사용 현황 보기:
 
 
top - 11:25:53 up 39 days,  1:25,  2 users,  load average: 0.33, 0.11, 0.09
Tasks: 133 total,   3 running, 130 sleeping,   0 stopped,   0 zombie
Cpu0  :  2.3%us,  0.9%sy,  0.0%ni, 82.7%id,  0.0%wa,  0.0%hi,  0.0%si, 14.1%st
Cpu1  :  1.7%us,  0.6%sy,  0.0%ni, 81.8%id,  0.0%wa,  0.0%hi,  0.0%si, 16.0%st
Cpu2  :  2.8%us,  1.9%sy,  0.0%ni, 74.4%id,  0.0%wa,  0.0%hi,  0.0%si, 20.9%st
Cpu3  :  2.0%us,  0.9%sy,  0.0%ni, 83.0%id,  0.0%wa,  0.0%hi,  0.0%si, 14.0%st
Cpu4  :  2.2%us,  0.8%sy,  0.0%ni, 79.3%id,  0.0%wa,  0.0%hi,  0.0%si, 17.6%st
Cpu5  :  3.6%us,  1.1%sy,  0.0%ni, 75.9%id,  0.0%wa,  0.0%hi,  0.0%si, 19.5%st
Cpu6  :  2.1%us,  0.9%sy,  0.0%ni, 87.2%id,  0.0%wa,  0.0%hi,  0.0%si,  9.8%st
Cpu7  :  1.7%us,  0.6%sy,  0.0%ni, 80.6%id,  0.0%wa,  0.0%hi,  0.0%si, 17.1%st
Mem:   1024884k total,   891020k used,   133864k free,   144912k buffers
Swap:   262140k total,     4172k used,   257968k free,   434244k cached

 
만약 에 여러 개의 CPU 커 널 의 이 용 률 이 차이 가 많 지 않 으 면 nginx 가 다 핵 CPU 를 성공 적 으로 이 용 했 음 을 증명 합 니 다.테스트 가 끝나 면 CPU 커 널 의 부하 가 동시에 줄 어 들 것 이다.
CPU 파라미터 설정 을 통한 workercpu_affinity nginx 성능 향상

좋은 웹페이지 즐겨찾기