Nginx 기반 10 만 + 병발, 당신 이 해 야 할 Linux 커 널 최적화

3609 단어
기본 적 인 Liux 커 널 파 라 메 터 는 가장 일반적인 장면 을 고려 하기 때문에 높 은 동시 방문 을 지원 하 는 웹 서버 의 정의 에 부합 되 지 않 기 때문에 Linux 커 널 파 라 메 터 를 수정 해 야 합 니 다. 예, Nginx 는 더욱 높 은 성능 을 가 질 수 있 습 니 다.
커 널 을 최적화 할 때 할 수 있 는 일이 많 지만 저 희 는 업무 특성 에 따라 조정 합 니 다. Nginx 가 정적 웹 콘 텐 츠 서버, 역방향 프 록 시 또는 압축 서버 를 제공 하 는 서버 일 때 커 널 매개 변 수 를 조정 하 는 것 이 다 릅 니 다. 여 기 는 가장 통용 되 고 Nginx 가 더 많은 동시 요청 을 지원 하 는 TCP 네트워크 매개 변 수 를 간단하게 설정 합 니 다.
우선, 커 널 인 자 를 변경 하기 위해 서 는 / etc / sysctl. conf 를 수정 해 야 합 니 다.
fs.file-max = 999999
단일 프로 세 스 가 열 수 있 는 최대 핸들 수 를 표시 합 니 다.
net.ipv4.tcp_tw_reuse = 1
매개 변 수 를 1 로 설정 하면 TIMEWAIT 상태의 socket 을 새로운 TCP 링크 에 다시 사용 하 는 것 은 서버 에 큰 의미 가 있 습 니 다. 항상 TIME 이 많 기 때 문 입 니 다.WAIT 상태의 링크 가 존재 합 니 다.
ner.ipv4.tcp_keepalive_time = 600
keepalive 가 시 작 될 때 TCP 가 keepalive 메 시 지 를 보 내 는 빈도;기본 값 은 2 시간 입 니 다. 10 분 으로 설정 하면 잘못된 링크 를 빨리 정리 할 수 있 습 니 다.
net.ipv4.tcp_fin_timeout = 30
서버 가 자발적으로 링크 를 닫 을 때 socket 은 FIN 에 유 지 됩 니 다.WAIT_2 상태의 최대 시간
net.ipv4.tcp_max_tw_buckets = 5000
이 매개 변 수 는 운영 체제 가 TIME 를 허용 함 을 나 타 냅 니 다.WAIT 소켓 의 최대 치, 이 숫자 를 초과 하면 TIMEWAIT 소켓 은 즉시 제거 되 고 경고 메 시 지 를 인쇄 합 니 다.
이 매개 변 수 는 기본적으로 180000, 너무 많은 TIME 입 니 다.WAIT 소켓 은 웹 서버 를 느리게 합 니 다.
net.ipv4.ip_local_port_range = 1024 65000
UDP 와 TCP 링크 의 로 컬 포트 의 값 범 위 를 정의 합 니 다.
net.ipv4.tcp_rmem = 10240 87380 12582912
TCP 가 캐 시 를 받 아들 이 는 최소 값, 기본 값, 최대 값 을 정의 합 니 다.
net.ipv4.tcp_wmem = 10240 87380 12582912
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 공격 입 니 다.
net.ipv4.tcp_max_syn_backlog = 8192
이 매개 변 수 는 TCP 세 번 의 악수 구축 단계 에서 SYN 요청 을 받 아들 이 는 줄 의 최대 길 이 를 나타 낸다. 기본 값 1024 는 Nginx 가 바 빠 서 accept 새 연결 을 받 지 못 할 경우 리 눅 스 는 클 라 이언 트 가 시작 한 링크 요청 을 잃 어 버 리 지 않 는 다.
net.ipv4.tcp_tw_recycle = 1
이 매개 변 수 는 timewait 의 빠 른 회 수 를 설정 하 는 데 사 용 됩 니 다.
net.core.somaxconn=262114
기본 값 은 128 입 니 다. 이 매개 변 수 는 시스템 이 동시에 시작 하 는 TCP 연결 수 를 조절 하 는 데 사 용 됩 니 다. 높 은 동시 다발 요청 에서 기본 값 은 링크 시간 초과 나 재 전송 을 초래 할 수 있 으 므 로 높 은 동시 다발 요청 수 와 결합 하여 이 값 을 조절 해 야 합 니 다.
net.ipv4.tcp_max_orphans=262114
시스템 에서 최대 몇 개의 TCP 소켓 이 사용자 파일 핸들 에 연결 되 지 않 는 지 설정 하 는 데 사용 할 옵션 입 니 다.이 숫자 를 초과 하면 고립 된 링크 는 즉시 복원 되 고 경고 메 시 지 를 출력 합 니 다.이 제한 지 시 는 간단 한 DOS 공격 을 막 기 위해 이 제한 에 지나치게 의존 하지 않 고 심지어 이 값 을 줄 일 필요 가 없다 고 생각 하 며 이 값 을 늘 리 는 경우 가 더 많다.
편리 하 게 사용 하기 위해 서 아래 에 주석 이 없 는 것 은 직접 복사 할 수 있다.
fs.file-max = 999999
net.ipv4.tcp_tw_reuse = 1
ner.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 65000 
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_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_tw_recycle = 1 
net.core.somaxconn=262114 
net.ipv4.tcp_max_orphans=262114 

설정 파일 을 수정 하고 sysctl - p 명령 을 실행 하여 설정 을 즉시 적용 합 니 다.

좋은 웹페이지 즐겨찾기