NGINX Tuning Point
- 구동되는 OS 및 NGINX Config 에서 성능 관련한 튜닝 포인트가 존재 한다
OS ( Parameter / Kernel ) Tuning
- Parameter
- limits 설정
cat /etc/security/limits.conf nginx hard nproc 10240 nginx soft nproc 10240 nginx hard nofile 204800 nginx soft nofile 204800
- Kernel
- ipv4 관련 커널 변경 필요
Parameter 설명 net.core.somaxconn accept 상태를 기다리는 queue Accept 가능한 최대 Connection queue net.ipv4.tcp_max_syn_backlog syn_received 상태의 소켓을 기다리는 Queue net.core.netdev_max_backlog NIC 에서 buffered 되는 packet rate fs.file-max OS FD (File-Descriptor ) 의 최대 갯수 늘리기 net.ipv4.ip_local_port_range Proxy 동작시, Upstream 서버에 대한 연결떄 사용할 임시포트 범위 net.ipv4.tcp_fin_timeout 다른 connection이 port 사용할때 port가 inactive 되는 시간 ( default = 60 ) net.core.rmem_default receiver (read) buffer / byte 단위 net.core.wmem_default send (write) buffer / byte 단위 net.core.rmem_max receiver (read) buffer Max / byte 단위 net.core.wmem_max send (write) buffer Max / byte 단위 net.ipv4.tcp_rmem Kernel 에서 사용할 수 있는 Memory 크기 ( read ) min / default / max ( Page 단위 ( 1Page = 4KB , ex = 4096 = 16MB ) ) net.ipv4.tcp_wmem Kernel 에서 사용할 수 있는 Memory 크기 ( Write ) min / default / max ( Page 단위 ( 1Page = 4KB , ex = 4096 = 16MB ) )
- Parameter
NGINX Config Tuning
- nginx.conf ( Global Parameter )
- worker_processes
- 역할 :
- default : auto ( auto 가 CPU Core 감지하여 자동 설정 )
- 가이드 : Core 당 1 worker 설정
- 기타
- Heavy Disk I/O 발생시 worker Processes 늘리는 것 권고
- worker_connections
- 역할 : worker_processes 가 처리할수 있는 최대 연결 수
- default : 512 or 1024
- 기타
- Reverse Proxy 최대 접속수 : worker processes * worker connection /4
- 최대 접속수가 ulimit -n > open files 보다 작아야 함
- worker_processes
- http context
- TCP/UDP Context
- nginx.conf ( Global Parameter )