>백엔드 개발 >PHP 튜토리얼 >Nginx 작업 모드 및 일부 이해

Nginx 작업 모드 및 일부 이해

WBOY
WBOY원래의
2016-07-29 08:50:571101검색

2. Nginx의 작업 모드 및 높은 동시성을 처리하는 방법에 대한 이해

Nginx의 작업 모드는 매우 간단합니다. 즉, 하나의 마스터를 사용합니다. 프로세스 및 다중 작업자 프로세스의 경우 마스터 프로세스의 역할도 매우 명확합니다. 즉, 작업자 프로세스를 관리하고 연결 요청을 수신하는 것입니다. 연결 요청이 도착하면 특정 비즈니스 요청을 처리하기 위해 작업자 프로세스에 연결이 적용됩니다. http 요청과 같은. Nginx가 높은 동시성을 처리할 수 있는 이유는 소켓 관리 방법이 비동기적이고 비차단이기 때문입니다. Select/poll/epoll/kqueue는 많은 수의 소켓 설명자를 관리하는 데 사용됩니다. 각 작업자 프로세스에는 하나의 기본 스레드가 있고 다른 스레드는 없습니다. 스레드의 장점은 스레드 간에 전환할 필요가 없어 리소스가 절약된다는 것입니다. 요약하자면, 낮은 효율성으로 실행되면서도 높은 동시성을 지원할 수 있는 Nginx의 핵심은 전체 시스템 내에 제한된 수의 작업 프로세스와 하나의 수신 프로세스만 있고 각 프로세스 내부에는 하나의 메인 스레드만 있다는 것입니다. , 따라서 스레드 전환이 많이 발생하므로 시스템 오버헤드가 줄어듭니다. 동시에 각 스레드는 설명자를 관리하기 위해 비동기식 비차단 방식을 사용하므로 많은 수의 설명자가 있을 때 관리할 수 있습니다. 디스크립터가 많기 때문에 메모리만 더 많이 차지하며 CPU 시간을 많이 차지하지 않습니다. 위는 Nginx의 프로세스 모델과 이벤트 모델입니다. 이벤트 모델에서 처리되는 세 가지 주요 상황은 HTTP 요청 등과 같은 네트워크 이벤트입니다. 네트워크 이벤트는 비동기 비차단 모드와 신호를 사용하여 잘 해결할 수 있습니다. 타이머, 신호 및 타이머는 아직 명확하지 않습니다. Nginx가 프로세스 간 시스템 리소스 경쟁을 처리하는 방식, 즉 프로세스 간에 존재하는 천둥소리 같은 무리 현상입니다.

위 내용은 작업 모드와 Nginx의 일부 이해를 소개하며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.