nginx 서버 Linux 커 널 파라미터 최적화
커 널 을 최적화 할 때 할 수 있 는 사건 이 많 지만 저 희 는 업무 특성 에 따라 조정 합 니 다. Nginx 가 정적 웹 콘 텐 츠 서버, 역방향 프 록 시 서버 또는 이미지 미리 보기 기능 (실시 간 압축 이미지) 을 제공 하 는 서버 일 때 커 널 참 수 를 조정 하 는 것 이 다 릅 니 다.이 곳 은 Nginx 가 더 많은 동시 요청 을 지원 할 수 있 도록 가장 통용 되 는 TCP 네트워크 매개 변수 에 대해 서 만 간단하게 설명 합 니 다.
우선, 커 널 파 라 메 터 를 변경 하려 면 / etc / sysctl. conf 를 수정 해 야 합 니 다. 예 를 들 어 가장 자주 사용 하 는 설정:
CODE 에서 코드 영 화 를 보고 제 코드 영 화 를 파생 시 켰 습 니 다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#
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
그리고 sysctl - p 명령 을 실행 하여 상기 매개 변 수 를 유효 하 게 합 니 다.
위의 매개 변수 의 미 는 다음 과 같다.
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 매개 변수 결정.
Nginx 는 성능 을 위 한 HTTP 서버 로 Apache, lighttpd 에 비해 메모리 가 적 고 안정성 이 높다 는 장점 을 가진다.이전 버 전 (< = 2.2) 의 Apache 와 달리 nginx 는 모든 클 라 이언 트 기기 의 스 레 드 디자인 모델 을 사용 하지 않 고 비동기 논 리 를 충분히 사용 하여 문맥 관리 비용 을 줄 였 기 때문에 병행 서비스 능력 이 더욱 강하 다.전체적으로 모듈 화 디자인 을 사용 하고 풍부 한 모듈 라 이브 러 리 와 제3자 모듈 라 이브 러 리 가 있 으 며 구성 이 유연 합 니 다.Linux 운영 체제 에서 nginx 는 epoll 이벤트 모델 을 사용 합 니 다. 덕분에 nginx 는 Linux 운영 체제 에서 효율 이 상당히 높 습 니 다.또한 Nginx 는 OpenBSD 나 FreeBSD 운영 체제 에서 epoll 과 유사 한 효율 적 인 이벤트 모델 kqueue 를 사용한다.
LINUX 시스템 의 초보 자 를 깊이 체험 하고 싶다 면 팡 드 리 눅 스 소프트웨어 센터 를 다운로드 해 사용 해 보 는 것 도 좋다.무료 다운로드 주소:http://www.nfs-cloud.cn:81/appCenter/open/softcenter
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.