ab를 사용하여 nginx 벤치마크: 피어에 의한 연결 재설정(54)

ab를 사용하여 nginx 벤치마크: 피어에 의한 연결 재설정(54)

저는 최근 nginx 1.0.8로 업데이트하고 캐시된 동적 페이지(처음에는 Proxy_pass를 통해 Django 앱에서 제공됨)와 정적 페이지의 성능을 벤치마킹하려고 했습니다. 두 경우 모두 nginx는 (동시 연결이 없더라도) 3~4개 이상의 요청을 처리하지 않으므로 ab는 거의 즉시 다음을 보고합니다.

apr_socket_recv: Connection reset by peer (54)

ab가 성공적으로 완료되는 것은 최대 4개(또는 그 이하) 요청을 선택한 경우에만 가능합니다.

왜 그런 겁니까? 작업자 프로세스 수를 늘리려고 시도했지만(운이 좋지 않음) nginx가 구성 변수를 조정하지 않고도 4개 이상의 요청을 처리할 수 있어야 한다고 가정합니다. 실수로 일종의 DOS 보호 메커니즘을 실행했을 수 있습니까?

답변1

ab간단한 Node.JS 앱에 대해 로컬 테스트를 실행할 때에도 동일한 문제가 발생했습니다 . 내가 찾은 해결 방법 ab -rDon't exit on socket receive errors.

하지만 이 오류의 근본 원인은 상자에 포함할 수 있는 열린 소켓의 수가 제한되어 있기 때문입니다. OSx를 사용하는 경우 이 답변을 참조하여 이 제한에 더 높은 숫자를 설정할 수 있습니다.

부하 테스트를 위해 osx의 소켓 제한을 늘리는 방법

관련 정보