NGINX에서 `multi_accept`를 `on` 또는 `off`로 설정하면 작업자 프로세스가 새 연결을 처리하는 방식에 중요한 영향을 미칩니다. 주요 차이점은 다음과 같습니다.
`multi_accept off`(기본값)
- 작업자 프로세스는 한 번에 하나의 새 연결을 수락합니다: 각 작업자 프로세스는 하나의 새 연결을 수락하고 처리할 다음 이벤트를 위해 커널로 돌아오기 전에 이를 처리합니다.
- 시스템 리소스의 효율적인 사용: 이 접근 방식은 여러 연결을 동시에 처리하여 시스템 리소스를 낭비하지 않으므로 각 작업자 프로세스가 효율적으로 활용되도록 보장합니다.
- 대부분의 사용 사례에 권장됨: 이는 기본 설정이며 효율적인 리소스 활용 요구 사항과 새 연결 처리 요구 사항의 균형을 유지하므로 대부분의 사용 사례에 적합합니다.
`multi_accept on`
- 작업자 프로세스는 모든 새 연결을 한 번에 수락: 각 작업자 프로세스는 모든 새 연결을 동시에 수락하므로 대용량 연결을 효율적으로 처리할 수 있습니다.
- 리소스 낭비 가능성: 새로운 연결의 양이 적은 경우 일부 작업자 프로세스는 여러 연결을 동시에 처리하여 시스템 리소스를 낭비할 수 있습니다.
- 대부분의 사용 사례에는 권장되지 않음: 이 설정은 새 연결의 양이 적을 경우 시스템 리소스를 비효율적으로 사용할 수 있으므로 대부분의 사용 사례에 권장되지 않습니다.
요약하면, `multi_accept`를 `on`으로 설정하는 것은 새로운 연결의 양이 많고 트래픽이 많은 웹사이트에 유리할 수 있지만, 새로운 연결의 양이 적다면 리소스 낭비로 이어질 수 있습니다. 'multi_accept'를 'off'(기본값)로 설정하면 시스템 리소스를 효율적으로 사용할 수 있으며 대부분의 사용 사례에 적합합니다.
인용:[1] https://serverfault.com/questions/763597/why-is-multi-accept-off-as-default-in-nginx
[2] https://hub.packtpub.com/fine-tune-nginx-configufine-tune-nginx-configurationfine-tune-nginx-configurationratio/
[3] https://blog.nginx.org/blog/performance-tuning-tips-tricks
[4] http://nginx.org/en/docs/ngx_core_module.html
[5] https://webdock.io/en/docs/webdock-control-panel/optimizing-performance/optimizing-nginx-high-traffic-websites