nginx 고 병발 리 눅 스 커 널 파라미터 최적화

3595 단어 Nginx
묵인
Linux
커 널 매개 변 수 는 가장 통용 되 는 장면 을 고려 하 는데 이것 은 높 은 동시 방문 을 지원 하 는 웹 에 부합 되 지 않 습 니 다.
서버 정의 때문에 수정 이 필요 합 니 다.
Linux
커 널 매개 변수
Nginx
더욱 높 은 성능 을 가 질 수 있다.
        커 널 을 최적화 할 때 할 수 있 는 일이 많 지만 우 리 는 업무 특징 에 따라 조정 을 한다. Nginx 가 정적 일 때
Web
콘 텐 츠 서버, 역방향 프 록 시 서버 또는 그림 미리 보기 기능 (실시 간 압축 그림) 을 제공 하 는 서버 는 커 널 매개 변수 조정 이 다르다.여 기 는 가장 통용 되 는 Nginx 만 을 대상 으로 합 니 다.
더 많은 동시 요청 을 지원 하 는 TCP
네트워크 매개 변 수 를 간단하게 설명 하 다.
 
우선 수정 이 필요 하 다
/etc/sysctl.conf
커 널 인 자 를 변경 합 니 다.예 를 들 어 가장 많이 사용 되 는 설정:
 
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 = 4096 32768 262142 
net.ipv4.tcp_wmem = 4096 32768 262142 
net.core.netdev_max_backlog = 8096 
net.core.rmem_default = 262144 
net.core.wmem_default = 262144 
net.core.rmem_max = 2097152 
net.core.wmem_max = 2097152 
net.ipv4.tcp_syncookies = 1 
net.ipv4.tcp_max_syn.backlog=1024

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

좋은 웹페이지 즐겨찾기