nginx를 최적화할 수 있는 장소 소개

不言
풀어 주다: 2023-04-04 11:00:01
앞으로
2751명이 탐색했습니다.

이 글은 nginx를 최적화할 수 있는 장소를 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

worker_processes 8;
로그인 후 복사

nginx프로세스 수는 cpu#의 수에 따라 지정하는 것이 좋습니다. 🎜🎜#, 일반적으로 그 배수입니다.

 worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
로그인 후 복사

은 각 프로세스에 할당됩니다. 🎜#8 프로세스는 8#🎜🎜에 할당됩니다. #cpu 물론 여러 개를 작성하거나 프로세스를 여러 개에 할당할 수 있습니다. 🎜🎜#.

 worker_rlimit_nofile 102400;
로그인 후 복사
이 명령은 이론적으로 nginx 프로세스에서 열리는 최대 파일 설명자 수를 나타냅니다. 값은 열린 파일의 최대 수(ulimit n)를 프로세스 수

nginx

#로 나눈 값이어야 합니다. 🎜🎜# 하지만 nginx은 고르게 분포되지 않으므로 ulimit n#🎜🎜 값을 유지하는 것이 가장 좋습니다. # 일관성.

 use epoll;
로그인 후 복사
사용 epollI/O#🎜🎜 # 모델, 말할 것도 없이요.
 worker_connections 102400;
로그인 후 복사
프로세스당 허용되는 최대 연결 수, 이론적으로

nginx당 최대 연결 수 서버 연결 수는 worker_processes*worker_connections입니다.

 keepalive_timeout 60;
로그인 후 복사
keepalive

Timeout.

client_header_buffer_size 4k;
로그인 후 복사
클라이언트 요청 헤더의 버퍼 크기는 시스템 페이징 크기에 따라 설정할 수 있습니다. 일반적으로 요청의 헤더 크기는 #🎜를 초과하지 않습니다. 🎜#1k , 그러나 일반적인 시스템 페이징은

1k

#🎜🎜보다 크기 때문에 #, 여기서는 페이징 크기로 설정되었습니다. 페이징 크기는 getconf PAGESIZE 명령을 사용하여 얻을 수 있습니다.

 open_file_cache max=102400 inactive=20s;
로그인 후 복사
이것은 파일을 열기 위한 캐시를 지정합니다. max 캐시 지정 수량은 열린 파일 수와 일치하는 것이 좋습니다. inactive은 캐시가 삭제되기 전에 파일이 요청되지 않은 기간을 나타냅니다.
 open_file_cache_valid 30s;
로그인 후 복사
캐시된 유효한 정보를 얼마나 자주 확인하는지를 나타냅니다. 매개변수 시간 파일 최소 사용 횟수입니다. 이 숫자를 초과하면 #🎜에 파일이 있는 경우 파일 설명자

이 항상 캐시에 열려 있습니다. 🎜# inactive일정 기간 내에 한 번도 사용하지 않으면 삭제됩니다. 커널 매개변수 최적화net.ipv4.tcp_max_tw_buckets = 6000

# 🎜 🎜 #timewait의 수량은 기본값은

180000입니다. net.ipv4.ip_local_port_range = 1024 65000

시스템에서 열 수 있는 포트 범위 . net.ipv4.tcp_tw_recycle = 1

활성화 timewait빠른 재활용.

net.ipv4.tcp_tw_reuse = 1

재사용을 활성화합니다. 새로운 TCP 연결에 TIMEWAIT 소켓을 재사용할 수 있습니다. net.ipv4.tcp_syncookies = 1 intable

syn cookies

synsyting 큐가 넘치면

cookies가 그것을 처리 할 수 ​​있습니다.

net.core.somaxconn = 262144webapplicationlistenfunction의

backlog

default는 커널 매개변수의

net.somaxcon을 제공합니다. n

한정 128 , nginxdefine definition NGX_LISTEN_BACKLOG기본값은 511이므로 이 값을 조정해야 합니다. net.core.netdev_max_backlog = 262144각 네트워크 인터페이스가 커널이 처리할 수 있는 것보다 더 빠르게 패킷을 수신할 때 대기열에 들어갈 수 있는 최대 패킷 수입니다. net.ipv4.tcp_max_orphans = 262144

시스템의 최대

TCP

소켓 수는 사용자 파일 핸들과 연결되지 않습니다. 이 숫자를 초과하면 고아 연결이 즉시 재설정되고 경고 메시지가 인쇄됩니다. 이 제한은 단순한

DoS

공격을 방지하기 위한 것입니다. 이 값을 너무 많이 의존하거나 인위적으로 이 값을 줄여야 합니다(

메모리를 늘리는 경우

)

. net.ipv4.tcp_max_syn_backlog = 262144아직 클라이언트 확인 정보를 받지 못한 기록된 연결 요청의 최대 값입니다. 128M 메모리가 있는 시스템의 경우 기본값은 1024이고, 작은 메모리가 있는 시스템의 경우 기본값은

128

입니다.

net.ipv4.tcp_timestamps = 0타임스탬프는 시퀀스 번호 줄 바꿈을 방지할 수 있습니다. 1Gbps 링크를 클릭하면 이전에 사용되었던 일련번호가 반드시 나타납니다. 타임스탬프를 사용하면 커널이 이러한 "Exception

"

패킷을 허용할 수 있습니다. 여기서는 꺼야 합니다.

net.ipv4.tcp_synack_retries = 1피어에 대한 연결을 열려면 커널은 이전 SYN에 대한 응답으로 ACK와 함께 SYN을 보내야 합니다.

. 이른바 삼자악수 중 두 번째 악수다. 이 설정은 커널이 연결을 포기하기 전에 전송되는

SYN+ACK

패킷 수를 결정합니다. net.ipv4.tcp_syn_retries = 1

在内核放弃建立连接之前发送SYN包的数量。

net.ipv4.tcp_fin_timeout = 1

如果套接字由本端要求关闭,这个参数决定了它保持在FIN­WAIT­2状态的时间。对端可以出错并永远不关 闭连接,甚至意外当机。缺省值是60秒。2.2 内核的通常值是180秒,你可以按这个设置,但要记住的是, 即使你的机器是一个轻载的WEB服务器,也有因为大量的死套接字而内存溢出的风险,FIN­ WAIT­2的危 险性比FIN­WAIT­1要小,因为它最多只能吃掉1.5K内存,但是它们的生存期长些。

net.ipv4.tcp_keepalive_time = 30

keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时。

一个完整的内核优化配置

 net.ipv4.ip_forward = 0
 net.ipv4.conf.default.rp_filter = 1
 net.ipv4.conf.default.accept_source_route = 0
로그인 후 복사
 kernel.sysrq = 0
 kernel.core_uses_pid = 1
 net.ipv4.tcp_syncookies = 1
 kernel.msgmnb = 65536
 kernel.msgmax = 65536
 kernel.shmmax = 68719476736
 kernel.shmall = 4294967296
 net.ipv4.tcp_max_tw_buckets = 6000
 net.ipv4.tcp_sack = 1
 net.ipv4.tcp_window_scaling = 1
 net.ipv4.tcp_rmem = 4096    87380    4194304
 net.ipv4.tcp_wmem = 4096    16384    4194304
 net.core.wmem_default = 8388608
 net.core.rmem_default = 8388608
 net.core.rmem_max = 16777216
 net.core.wmem_max = 16777216
로그인 후 복사

 net.core.netdev_max_backlog = 262144
 net.core.somaxconn = 262144
 net.ipv4.tcp_max_orphans = 3276800
 net.ipv4.tcp_max_syn_backlog = 262144
 net.ipv4.tcp_timestamps = 0
 net.ipv4.tcp_synack_retries = 1
 net.ipv4.tcp_syn_retries = 1
로그인 후 복사

위 내용은 nginx를 최적화할 수 있는 장소 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿