>  기사  >  운영 및 유지보수  >  nginx에서 구성해야 하는 매개변수 소개

nginx에서 구성해야 하는 매개변수 소개

王林
王林앞으로
2020-11-12 16:00:082704검색

nginx에서 구성해야 하는 매개변수 소개

One: 기본 매개변수

1.1 작업자_프로세스

# 指定nginx开启worker工作子进程数量# number默认1,建议配置数量与CPU核心数量相等worker_processes number复制代码

1.2 작업자_cpu_affinity

# nginx默认未开启利用多核CPU,开启某个核心该位置标志为1即可# worker_processes 最多开启8个,所以多核最多8个也就够用。示例配置开启4核worker_cpu_affinity 00000001 00000010 00000100 00001000复制代码

1.3 작업자_우선순위

# 进程优先级,数值越低占用资源越多# number默认10,值范围-20 ~ 20# 建议配置-10即可,最好别低于Linux系统进程-5优先级worker_priority number复制代码

1.4 작업자_rlimit_nofile

# 一个子进程可以打开文件描述限制# nginx默认一个子进程打开文件描述限制数量 = (ulimt -u) / worker_processes# 因为进程处理连接任务很多时候不均衡,所以最好设置为与系统数量一致worker_rlimit_nofile (ulimit -u)复制代码

1.5 error_log

# file指定日志输出文件位置,默认logs/error.log# level指定日志输出最低级别,默认error级别。当然可以设置为debug、info等error_log file [level]复制代码

1.6 pid

# file默认值logs/pid.log,指定nginx中master进程的PID输出文件位置pid file复制代码

1.7 user

# user第二个参数user,配置nginx进程运行用户,默认nobody# group配置nginx进程运行用户组,默认nobodyuser user [group]复制代码

2: 이벤트 매개변수

2.1 Worker_connections

# nginx指定一个子进程可处理连接数量# number默认数量1024# nginx可处理连接总数 = worker_processes * worker_connecitonsworker_connections  number复制代码

2.2 accept_mutex

accept_mutex 매개변수는 작업자 프로세스 처리 연결에 대한 허용 뮤텍스 잠금 스위치입니다. 1.11.3 이전 버전에서는 기본값이 켜져 있고 이후 버전에서는 기본값이 꺼져 있습니다

2.2.1 천둥 떼 현상

Nginx는 작업자 프로세스 매개변수를 전달할 수 있습니다. 여러 작업자 프로세스는 포크 후 동일한 포트를 수신합니다. 외부 연결이 들어오면 모든 하위 프로세스가 연결을 확보하기 위해 깨어납니다. 한 하위 프로세스가 수락 이벤트를 성공적으로 처리하지 않으면 하위 프로세스는 다시 절전 모드로 전환됩니다. 불필요한 컨텍스트 전환이 많이 발생합니다. 이것이 썬더링 허드 현상입니다

2.2.2 accept lock 처리

nginx는 epoll에 하나의 프로세스만 등록되도록 accept mutex를 추가하여 썬더링 허드 현상을 방지합니다. 즉, 연결이 들어오면 이를 처리할 하위 프로세스는 하나만 있을 수 있습니다

尝试获取accept锁if success
    在epoll中注册accept事件else
    在epoll中注销accept事件
处理所有连接事件
释放accept锁复制代码
2.2.3 Accept Lock의 단점

Accept Lock은 Thundering Group 현상으로 인한 문제를 완벽하게 해결한 것 같지만, 또한 일부 하위 프로세스를 매우 바쁘게 만듭니다. 특히 처리량과 동시성이 상대적으로 높은 애플리케이션에서 일부 하위 프로세스가 매우 유휴 상태라는 문제가 있습니다. 일반적으로 작업자 하위 프로세스의 로드가 고르지 않은 문제입니다

2.2.4 구성 권장 사항
  • 연결이 짧은 분산 애플리케이션의 경우 과도한 컨텍스트 전환 오버헤드를 피하기 위해 이 매개변수를 켜는 것이 가장 좋습니다
  • 오랫동안 연결 애플리케이션 작업자의 과도한 연결 부하로 인해 프로세스의 CPU 사용률이 높아지는 것을 방지하려면 이 매개변수를 끄는 것이 가장 좋습니다. 이 매개변수는 모든 하위 프로세스가 승인 잠금을 다시 점유하는 데 얼마나 걸립니까?를 지정합니다. 적절한 매개변수 값은 작업자 부하 불균형 문제를 줄이는 데 도움이 될 수 있습니다. 기본값은 500ms입니다
관련 권장 사항:

nginx 튜토리얼

위 내용은 nginx에서 구성해야 하는 매개변수 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 juejin.im에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제