커널 매개변수의 최적화는 주로 Linux 시스템의 Nginx 애플리케이션에 대한 시스템 커널 매개변수의 최적화입니다.
아래에 참고용으로 최적화 예시가 나와 있습니다.
net.ipv4.tcp_tw_recycle = 1
net.ipv44.tcp_tw_reuse = 1
net.ipv4.tcp_s. = 1
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tc p_synack_retries = 1
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
위의 커널 매개변수 값을 /etc/sysctl에 추가합니다. .conf 파일을 편집한 후 다음 명령을 실행하여 이를 적용합니다.
/sbin/sysctl -p
위 매개변수는 아래에 소개되어 있습니다.
net.ipv4.tcp_max_tw_buckets 시간 대기를 설정하는 데 사용되는 기본 숫자는 180000입니다. , 여기에서 6000
net.ipv4.ip_local_port_range로 변경하여 시스템에서 열 수 있는 최소 포트 범위를 설정합니다. 1024
net.ipv4.tcp_tw_recycle은 빠른 재활용을 위해 시작 시간 대기를 설정하는 데 사용됩니다.
net.ipv4.tcp_tw_reuse는 재사용을 설정하는 데 사용되며, 새로운 TCP 연결에 대해 시간 대기 소켓을 재사용할 수 있습니다.
net.ipv4.tcp_syncookies는 syn 쿠키를 활성화하는 데 사용됩니다. 쿠키 처리
net.core.somaxconn. 기본값은 128입니다. 이 매개변수는 시스템이 동시에 시작하는 TCP 연결 수를 조정하는 데 사용됩니다. 높은 동시성 요청에서는 기본값으로 인해 연결 시간 초과가 발생할 수 있습니다. 따라서 재전송과 결합해야 합니다. 이 값은 동시 요청 수에 따라 조정됩니다.
net.core.netdev_max_backlog는 각 네트워크 인터페이스가 커널이 처리할 수 있는 것보다 더 빠른 속도로 패킷을 받아들일 때 대기열로 전송될 수 있는 최대 패킷 수를 나타냅니다.
net.ipv4.tcp_max_orphans는 사용자 파일 핸들과 연결되지 않은 시스템의 최대 TCP 소켓 수를 설정하는 데 사용됩니다. 이 숫자를 초과하면 분리된 연결이 즉시 재설정되고 경고 메시지가 인쇄됩니다. 이 제한은 단순한 DOS 공격을 방지하기 위한 것입니다. 이 제한에 너무 많이 의존하거나 이 값을 인위적으로 줄일 수도 없습니다. 대부분의 경우 이 값을 늘려야 합니다.
net.ipv4.tcp_max_syn_backlog는 아직 클라이언트 확인 정보를 받지 못한 연결 요청의 최대값을 기록하는 데 사용됩니다. 메모리가 128MB인 시스템의 경우 보조 매개변수의 기본값은 1024이고, 메모리가 작은 시스템의 경우 128입니다.
net.ipv4.tcp_synack_retries 매개변수의 값은 이전에 전송된 SYN+ACK 패킷 수를 결정합니다. 커널이 연결을 포기합니다.
net.ipv4.tcp_syn_retries는 커널이 연결을 포기하기 전에 전송된 SYN 패킷 수를 나타냅니다.
net.ipv4.tcp_fin_timeout은 소켓이 FIN-WAIT-2 상태에 남아 있는 시간을 결정합니다. 기본값은 60초입니다. 이 값을 올바르게 설정하는 것이 매우 중요합니다. 로드가 적은 웹 서버라도 데드 소켓 수가 많아 메모리 오버플로 위험이 있는 경우가 있습니다.
net.ipv4.tcp_keepalive_time은 Keepalive가 시작될 때 TCP가 Keepalive 메시지를 보내는 빈도를 나타냅니다. 기본값은 2(단위는 시간)입니다.
저작권 안내: 이 글은 블로거의 원본 글이므로 블로거의 허락 없이 복제할 수 없습니다.