• 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 ) )




  • 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 보다 작아야 함
    • http context
    • TCP/UDP Context