Nginx 고 병발 TCP 요청 Linux 시스템 매개 변수 설정

커 널 파 라 메 터 를 변경 하려 면 / etc / sysctl. conf 를 수정 해 야 합 니 다.
#      
net.ipv4.tcp_syncookies = 1  
#      
fs.file-max = 999999  
net.ipv4.tcp_tw_reuse = 1  
net.ipv4.tcp_keepalive_time = 600  
net.ipv4.tcp_fin_timeout = 30  
net.ipv4.tcp_max_tw_buckets = 5000  
net.ipv4.ip_local_port_range = 1024 61000  
net.ipv4.tcp_rmem = 10240 87380 12582912  
net.ipv4.tcp_wmem = 10240 87380 12582912  
net.core.netdev_max_backlog = 8096  
net.core.rmem_default = 6291456  
net.core.wmem_default = 6291456  
net.core.rmem_max = 12582912  
net.core.wmem_max = 12582912  
net.ipv4.tcp_max_syn_backlog = 1024

fs. file - max = 9999999: 이 매개 변 수 는 프로 세 스 (예 를 들 어 워 커 프로 세 스) 가 동시에 열 수 있 는 최대 핸들 수 를 표시 합 니 다. 이 매개 변 수 는 직선 으로 최대 병렬 연결 수 를 제한 하고 실제 상황 에 따라 설정 해 야 합 니 다.
net.ipv4.tcp_tw_reuse = 1: 이 매개 변 수 는 TIME - WAIT 상태의 socket 을 새로운 TCP 연결 에 다시 사용 할 수 있 도록 1 로 설정 되 어 있 습 니 다. 서버 에 TIME - WAIT 상태의 연결 이 많 기 때 문 입 니 다.
net.ipv4.tcp_keepalive_time = 600: 이 인 자 는 keepalive 가 활성화 되 었 을 때 TCP 가 keepalive 메 시 지 를 보 내 는 빈 도 를 나타 낸다.기본 값 은 2 시간 입 니 다. 조금 만 작 게 설정 하면 잘못된 연결 을 빨리 정리 할 수 있 습 니 다.
net.ipv4.tcp_fin_timeout = 30: 이 매개 변 수 는 서버 가 자발적으로 연결 을 닫 을 때 socket 이 FIN - WAIT - 2 상태 로 유지 되 는 최대 시간 을 나타 낸다.
net.ipv4.tcp_max_tw_buckets = 5000: 이 매개 변 수 는 운영 체제 가 TIME 를 허용 함 을 나 타 냅 니 다.WAIT 소켓 의 최대 치, 이 숫자 를 초과 하면 TIMEWAIT 소켓 은 즉시 제거 되 고 경고 메 시 지 를 인쇄 합 니 다.이 매개 변 수 는 기본적으로 180 000, 과도 한 TIME 입 니 다.WAIT 소켓 은 웹 서버 를 느리게 합 니 다.
net.ipv4.tcp_max_syn_backlog = 1024: 이 매개 변 수 는 TCP 세 번 의 악수 구축 단계 에서 SYN 요청 대기 열의 최대 길 이 를 표시 합 니 다. 기본 값 은 1024 입 니 다. 이 매개 변 수 를 크게 설정 하면 Nginx 가 바 빠 서 accept 새 연결 을 받 지 못 할 때 리 눅 스 는 클 라 이언 트 가 시작 한 연결 을 잃 어 버 리 지 않 습 니 다.
net.ipv4.ip_local_port_range = 1024 61000: 이 매개 변 수 는 UDP 와 TCP 연결 에서 로 컬 (연결 되 지 않 은 원 격) 포트 의 수치 범 위 를 정의 합 니 다.
net.ipv4.tcp_rmem = 10240 87380 12582912: 이 매개 변 수 는 TCP 캐 시 (TCP 가 미끄럼 창 을 받 아들 이 는 데 사용) 의 최소 값, 기본 값, 최대 값 을 정의 합 니 다.
net.ipv4.tcp_wmem = 10240 87380 12582912: 이 매개 변 수 는 TCP 송신 캐 시 (TCP 송신 슬라이딩 창 에 사용) 의 최소 값, 기본 값, 최대 값 을 정의 합 니 다.
net.core.netdev_max_backlog = 8096: 네트워크 카드 가 패 킷 을 받 아들 이 는 속도 가 커 널 처리 속도 보다 클 때 이 패 킷 을 저장 하 는 대기 열 이 있 습 니 다.이 매개 변 수 는 이 대기 열의 최대 값 을 표시 합 니 다.
net.core.rmem_default = 6291456: 이 매개 변 수 는 커 널 소켓 이 캐 시 구역 의 기본 크기 를 받 아들 이 는 것 을 나타 낸다.
net.core.wmem_default = 6291456: 이 매개 변 수 는 커 널 소켓 이 캐 시 영역 에 보 내 는 기본 크기 를 표시 합 니 다.
net.core.rmem_max = 12582912: 이 매개 변 수 는 커 널 소켓 이 캐 시 영역 을 받 아들 이 는 최대 크기 를 나타 낸다.
net.core.wmem_max = 12582912: 이 매개 변 수 는 커 널 소켓 이 캐 시 영역 을 보 내 는 최대 크기 를 나타 낸다.
net.ipv4.tcp_syncookies = 1: 이 매개 변 수 는 성능 과 상 관 없 이 TCP 의 SYN 공격 을 해결 하 는 데 사 용 됩 니 다.
메모: 슬라이딩 창의 크기 와 소켓 캐 시 영역 은 동시 연결 수량 에 어느 정도 영향 을 줄 수 있 습 니 다.모든 TCP 연결 은 TCP 슬라이딩 창 을 유지 하기 위해 메모 리 를 소모 합 니 다. 이 창 은 서버 의 처리 속도 에 따라 수축 되 거나 확 장 됩 니 다.
파라미터 net. core. wmemmax = 12582912 의 설정 은 물리 적 메모리 의 총 크기, Nginx 병행 처리 의 최대 연결 수량 을 균형 있 게 해 야 합 니 다.물론 서버 에 Out Of Memory 문제 가 발생 하지 않도록 병발 량 을 제공 하기 위해 미끄럼 창 크기 를 낮 추 는 것 은 적절 하지 않다. 미끄럼 창 이 너무 작 으 면 빅 데이터 전송 속도 에 영향 을 줄 수 있 기 때문이다.net.core.rmem_default = 6291456、net.core.wmem_default = 6291456、
net.core.rmem_max = 12582912 와 net. core. wmemmax = 12582912 이 네 개의 매개 변수의 설정 은 우리 의 업무 특성 과 실제 하드웨어 원가 에 따라 종합 적 으로 고려 해 야 한다.
Nginx 병렬 처리 최대 연결 량: nginx. conf 의 workprocesses 와 workconnections 매개 변수 결정.

좋은 웹페이지 즐겨찾기