Nginx 작업자 프로세스 번호
구문: Worker_processes 번호
기본값: 작업자_프로세스 1
기능: master_worker 실행 모드에서 작업자 프로세스 수를 정의합니다. 작업자 프로세스 수는 성능에 직접적인 영향을 미칩니다. 그럼 몇 개가 적당할까요? 비즈니스 요구 사항을 기반으로 합니다. 각 작업자는 단일 스레드 프로세스이며 다양한 모듈을 호출하여 다양한 기능을 구현합니다. 이러한 모듈이 차단 호출을 발생시키지 않는 것으로 판단되면 프로세스 수는 CPU 코어 수와 동일할 수 있으며 그렇지 않은 경우에는 약간 더 적을 수 있습니다.
Nginx 작업자 프로세스를 지정된 CPU 코어에 바인딩
구문: Worker_cpu_affinity cpumask [cpumask…]
기능: 각 작업자가 매우 바쁘다고 가정할 때 여러 프로세스가 동일한 CPU를 놓고 경쟁하는 경우 동기화 문제가 발생합니다. 반대로 각 작업자 프로세스에 자체 CPU가 있으면 완전한 동시성이 달성됩니다.
예:
작업자 프로세스 4
Worker_cpu_affinity 1000 0100 0010 0001;
SSL 하드웨어 가속
구문: ssl_engine 장치
기능: 서버에 SSL 하드웨어 가속 장치가 있는 경우 SSL 프로토콜 처리 속도를 높이도록 구성할 수 있습니다. 사용자는 OpenSSL에서 제공하는 명령을 사용하여 SSL 하드웨어 가속 장치가 있는지 확인할 수 있습니다: openssl 엔진 -t
시스템 호출 실행 빈도 gettimeofday
구문: 타이머_해상도 t
기능: 기본적으로 커널 이벤트 호출(예: epoll, select, poll, kqueue 등)이 반환될 때마다 gettimeofday가 한 번 실행되어 커널 시계를 구현하여 nginx 캐시 시계를 업데이트합니다. 초기 Linux에서는 이 비용이 적지 않았습니다.
Nginx 작업자 프로세스 우선순위 설정
구문: Worker_priority nice;
기본값: 작업자_우선순위 0
기능: Linux 및 Unix에서 많은 프로세스가 실행 가능 상태에 있을 때 우선 순위는 커널이 실행을 위해 선택하는 프로세스를 결정하는 데 사용됩니다. 프로세스에 할당된 CPU 시간 조각의 크기도 우선 순위와 관련이 있습니다. 우선 순위가 높을수록 시간 조각이 길어집니다. 예를 들어 기본적으로 최소 시간 조각은 5ms이고 최대 시간 조각은 800ms입니다. 우선순위는 프로세스 실행을 기반으로 커널이 수행한 정적 우선순위와 동적 조정의 조합에 의해 결정됩니다(현재는 -5 조정만 가능). Nice는 프로세스의 우선순위이며 값 범위는 -20~19이며, -20이 가장 높은 우선순위, 19가 가장 낮은 우선순위입니다. 커널 프로세스보다 작은 nice 값을 설정하는 것은 권장되지 않습니다(t는 일반적으로 -5입니다).