높은 동시성이란 무엇입니까?
기본 Linux 커널 매개변수는 가장 일반적인 시나리오를 고려하며 높은 동시 액세스를 지원하는 웹 서버에는 적합하지 않으므로 nginx가 가질 수 있도록 Linux 커널 매개변수를 수정해야 합니다.
커널을 최적화할 때 수행할 수 있는 작업은 많습니다. 그러나 일반적으로 nginx를 정적 웹 콘텐츠 서버, 역방향 프록시 또는 제공하는 서버로 사용하는 경우에는 조정을 수행합니다. 압축 서버의 경우 커널 매개변수 조정이 다를 것으로 예상됩니다. 다음은 nginx가 더 많은 동시 요청을 지원할 수 있도록 하는 가장 일반적인 TCP 네트워크 매개변수의 간단한 구성입니다. 이를 위해서는 /etc/sysctl.conf를 수정해야 합니다. 커널 매개변수를 변경합니다.
구성 상세 분석
#단일 프로세스에서 열 수 있는 최대 핸들 수를 나타냅니다. fs.file-max = 999999
net.ipv4.tcp_tw_reuse = 1
# Keepalive가 시작되면 TCP가 Keepalive를 전송하는 빈도가 증가합니다. 메시지; 기본값은 2시간이며 10분으로 설정하면 잘못된 링크를 더 빨리 정리할 수 있습니다.
ner.ipv4.tcp_keepalive_time = 600
#서버가 링크를 적극적으로 닫을 때 소켓이 fin_wait_2 상태로 유지되는 최대 시간
net.ipv4.tcp_fin_timeout = 30
#이 매개변수는 운영 체제에서 허용하는 최대 time_wait 소켓 수를 나타냅니다. 이 숫자를 초과하면 time_wait 소켓이 작동합니다. 즉시 지워지고 경고 메시지가 인쇄됩니다.
#이 매개변수의 기본값은 180000입니다. 과도한 time_wait 소켓은 웹 서버 속도를 저하시킵니다.net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.ip_local_port_range = 1024 65000
# tcp가 캐시를 허용하는 최소값, 기본값, 최대값을 정의합니다.
net.ipv4.tcp_rmem = 10240 87380 12582912
#TCP 전송 캐시의 최소값, 기본값, 최대값을 정의합니다.
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
참고: 위의 네 가지 구성은 비즈니스 논리와 실제 하드웨어 비용을 기반으로 종합적으로 고려해야 합니다.
# 성능과는 아무런 관련이 없습니다. tcp syn***을 해결하는 데 사용됩니다.
net.ipv4.tcp_syncookies = 1
#이 매개변수는 TCP 3방향 핸드셰이크 설정 단계에서 허용되는 syn 요청 대기열의 최대 길이를 나타냅니다. 기본값은 1024입니다. 이 값을 더 크게 설정하면 nginx가 너무 바빠서 새 연결을 수락할 수 없을 때 Linux가 클라이언트 시작을 잃는 것을 방지할 수 있습니다. .링크요청합니다.
net.ipv4.tcp_max_syn_backlog = 8192
#이 매개변수는 timewait 빠른 재활용을 설정하고 활성화하는 데 사용됩니다.
net.ipv4.tcp_tw_recycle = 1
옵션의 기본값은 128입니다. 이 매개 변수는 시스템에서 동시에 시작하는 TCP 연결 수를 조정하는 데 사용됩니다. 동시성이 높은 요청에서는 기본값으로 인해 링크 시간 초과 또는 재전송이 발생할 수 있습니다. 이 값은 동시성 요청 수와 함께 조정되어야 합니다.
net.core.somaxconn=262114
# 옵션은 사용자 파일 핸들과 연결되지 않은 시스템의 최대 TCP 소켓 수를 설정하는 데 사용됩니다. 이 숫자를 초과하면 고아 링크가 즉시 재설정되고 경고 메시지가 출력됩니다. 이 제한은 단순한 dos***를 방지하기 위해 이 제한에 너무 많이 의존할 필요가 없거나 이 값을 줄일 필요가 없음을 나타냅니다.
net.ipv4.tcp_max_orphans=262114
사용하기 쉽도록 아래에 직접 복사하시면 됩니다
net.ipv4.tcp_tw_reuse = 1 fs.file-max = 999999 net.ipv4.tcp_fin_timeout = 30 ner.ipv4.tcp_keepalive_time = 600
위 내용은 Nginx 높은 동시성 커널을 최적화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!