Nginx 프로필 최적화 비교

Nginx 프로필 은 우리 가 끊임없이 공부 해 야 합 니 다. 물론 우리 가 끊임없이 공부 하 는 과정 에서 많은 문제 가 발생 했 습 니 다. 그러면 다음은 Nginx 프로필 과 관련 된 문 제 를 살 펴 보 겠 습 니 다.일반적으로 Nginx 프로필 에서 최적화 에 효과 가 있 는 것 은 다음 과 같은 몇 가지 입 니 다.

  
  
  
  
  1. worker_processes 8; 

Nginx 는 파일 프로 세 스 수 를 설정 합 니 다. cpu 수 에 따라 지정 하 는 것 을 권장 합 니 다. 보통 배수 입 니 다.worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
프로 세 스 마다 cpu 를 할당 합 니 다. 8 개의 프로 세 스 를 8 개의 cpu 에 할당 합 니 다. 물론 여러 개 를 쓰 거나 하나의 프로 세 스 를 여러 cpu 에 할당 할 수 있 습 니 다.

  
  
  
  
  1. worker_rlimit_nofile 102400; 

이 명령 은 Nginx 프로필 프로 세 스 가 가장 많이 열 린 파일 설명자 수 를 말 합 니 다. 이론 적 값 은 최대 열 린 파일 수 (ulimit - n) 와 Nginx 프로 세 스 수 를 나 누 어야 합 니 다. 그러나 Nginx 할당 요청 이 고 르 지 않 기 때문에 ulimit - n 의 값 과 일치 하 는 것 이 좋 습 니 다.

  
  
  
  
  1. use epoll; 

epoll 의 I / O 모델 을 사용 합 니 다. 이 건 말 할 필요 가 없 죠?

  
  
  
  
  1. worker_connections 102400; 

모든 프로 세 스 가 허용 하 는 최대 연결 수 는 이론 적 으로 Nginx 서버 의 최대 연결 수 는 worker 입 니 다.processes*worker_connections。

  
  
  
  
  1. keepalive_timeout 60; 

keepalive 시간 초과.

  
  
  
  
  1. client_header_buffer_size 4k; 

클 라 이언 트 가 머리의 버퍼 크기 를 요청 합 니 다. 이것 은 시스템 의 페이지 크기 에 따라 설정 할 수 있 습 니 다. 보통 요청 헤더 의 크기 는 1k 를 초과 하지 않 지만 일반 시스템 의 페이지 는 1k 이상 이 어야 하기 때문에 페이지 크기 로 설정 합 니 다.페이지 크기 는 명령 getconf PAGESIZE 로 가 져 올 수 있 습 니 다.

  
  
  
  
  1. open_file_cache max=102400 inactive=20s

이것 은 파일 을 열기 위해 캐 시 를 지정 합 니 다. 기본적으로 사용 되 지 않 았 습 니 다. max 는 캐 시 수량 을 지정 합 니 다. 파일 을 여 는 것 과 일치 하 는 것 을 권장 합 니 다. inactive 는 파일 이 요청 되 지 않 은 지 얼마나 되 었 는 지 를 말 합 니 다.

  
  
  
  
  1. open_file_cache_valid 30s; 

이것 은 캐 시 를 얼마나 자주 검사 하 는 지 에 대한 유효한 정 보 를 말한다.

  
  
  
  
  1. open_file_cache_min_uses 1; 

open_file_cache 명령 의 inactive 매개 변 수 는 시간 내 에 파일 의 최소 사용 횟수 입 니 다. 이 숫자 를 초과 하면 파일 설명 자 는 캐 시 에서 열 려 있 습 니 다. 예 를 들 어 inactive 시간 내 에 한 번 도 사용 되 지 않 으 면 삭 제 됩 니 다.
커 널 매개 변수 최적화:

  
  
  
  
  1. net.ipv4.tcp_max_tw_buckets = 6000 

timewait 의 수량 은 기본적으로 180000 입 니 다.

  
  
  
  
  1. net.ipv4.ip_local_port_range = 1024 65000 

시스템 이 열 수 있 는 포트 범위 입 니 다.

  
  
  
  
  1. net.ipv4.tcp_tw_recycle = 1 

timewait 빠 른 회수 사용 하기.

  
  
  
  
  1. net.ipv4.tcp_tw_reuse = 1 

오픈 재사 용.TIME - WIT sockets 를 새로운 TCP 연결 에 다시 사용 할 수 있 도록 합 니 다.

  
  
  
  
  1. net.ipv4.tcp_syncookies = 1 

SYN Cookies 를 켜 면 SYN 대기 열 이 넘 칠 때 cookies 를 사용 합 니 다.

  
  
  
  
  1. net.core.somaxconn = 262144 

웹 응용 프로그램 에서 listen 함수 의 backlog 는 기본적으로 커 널 인자 의 net. core. somaxconn 을 128 로 제한 하고 Nginx 가 정의 하 는 NGXLISTEN_BACKLOG 는 기본적으로 511 이기 때문에 이 값 을 조정 할 필요 가 있 습 니 다.

  
  
  
  
  1. net.core.netdev_max_backlog = 262144 

모든 네트워크 인터페이스 에서 패 킷 을 받 는 속 도 는 커 널 이 이 패 킷 을 처리 하 는 속도 보다 빠 를 때 대기 열 에 보 내 는 패 킷 의 최대 수 를 허용 합 니 다.

  
  
  
  
  1. net.ipv4.tcp_max_orphans = 262144 

시스템 에서 최대 몇 개의 TCP 소켓 이 사용자 파일 핸들 에 연결 되 지 않 습 니 다.이 숫자 를 넘 으 면 고아 연결 은 즉각 리 셋 되 고 경고 메 시 지 를 출력 한다.이 제한 은 단지 간단 한 DoS 공격 을 방지 하기 위해 서 일 뿐, 그것 에 지나치게 의존 하거나 인위적으로 이 값 을 줄 일 수 없 으 며, 이 값 을 증가 시 켜 야 한다 (메모리 가 증가 하면).

  
  
  
  
  1. net.ipv4.tcp_max_syn_backlog = 262144 

클 라 이언 트 의 확인 정 보 를 받 지 못 한 연결 요청 의 최대 값 을 기록 합 니 다.128 M 메모리 가 있 는 시스템 의 경우 부족 한 값 은 1024 이 고 작은 메모리 의 시스템 은 128 이다.

  
  
  
  
  1. net.ipv4.tcp_timestamps = 0 

시간 스탬프 는 시리 얼 번호 의 와 인 딩 을 피 할 수 있다.1Gbps 의 링크 는 반드시 이전에 사 용 했 던 시리 얼 번 호 를 만 날 것 이다.타임 스탬프 는 커 널 로 하여 금 이러한 '이상' 데이터 패 키 지 를 받 아들 이게 할 수 있다.여 기 는 꺼 야 합 니 다.

  
  
  
  
  1. net.ipv4.tcp_synack_retries = 1 

커 널 은 엔 드 연결 을 열기 위해 SYN 을 보 내 고 앞의 SYN 에 응답 하 는 ACK 를 첨부 해 야 합 니 다.세 번 의 악수 중 두 번 째 악수 라 는 것 이다.이 설정 은 커 널 이 연결 을 포기 하기 전에 SYN + ACK 패 키 지 를 보 내 는 수량 을 결정 합 니 다.

  
  
  
  
  1. net.ipv4.tcp_syn_retries = 1 

커 널 이 연결 을 포기 하기 전에 SYN 패 키 지 를 보 내 는 수량 입 니 다.

  
  
  
  
  1. net.ipv4.tcp_fin_timeout = 1 

소켓 이 이 단 에서 닫 으 라 고 요구 하면 이 매개 변 수 는 FIN - WAIT - 2 상 태 를 유지 하 는 시간 을 결정 합 니 다.엔 드 에 오류 가 발생 할 수 있 으 며 연결 을 영원히 닫 지 않 을 수 있 으 며, 심지 어 는 의외로 컴퓨터 에 있 을 수도 있다.결 성 치 는 60 초 입 니 다.2.2 커 널 의 보통 값 은 180 초 입 니 다. 이 설정 을 누 를 수 있 습 니 다. 그러나 기억 해 야 할 것 은 기계 가 가 벼 운 WEB 서버 라 하 더 라 도 대량의 소켓 으로 인해 메모리 가 넘 칠 위험 이 있 습 니 다. FIN - WAIT - 2 의 위험성 은 FIN - WAIT - 1 보다 작 습 니 다. 최대 1.5K 메모리 만 먹 을 수 있 지만 생존 기간 이 길 기 때 문 입 니 다.

  
  
  
  
  1. net.ipv4.tcp_keepalive_time = 30 

이상 은 Nginx 프로필 에 대한 상세 한 설명 입 니 다.

좋은 웹페이지 즐겨찾기