인프런 커뮤니티 질문&답변

모코코님의 프로필 이미지
모코코

작성한 질문수

Jmeter 분산 테스트 도와주세요...

작성

·

322

0

저는 현재 nginx로 로컬 환경에서 로드밸런싱을 구성하였습니다.

 

80으로 접속하면 8080, 8081, 8082 port 중 한 곳으로 접속이 됩니다.

 

이에 로드밸런싱을 수행하기 전과 후의 성능 테스트를 진행하기 위해 Jmeter 툴을 이용하여 테스트를 진행하고자 했습니다.

 

 

우선 가볍게 위와 같이 설정해주었고, Timeout은 10초로 설정하였습니다.

 

이에 테스트를 수행하면, 정확히 1분 넘어가는 순간

이렇게 에러가 와바박 발생합니다.

 

대체 왜 이러는 걸까요...

 

nginx 설정으로는

worker_processes 4;

worker_connections 4096; 로 해주었습니다.

 

제가 놓친 부분이 무엇일까요... 제발 도와주십쇼...

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

모코코님, JMeter를 사용한 분산 테스트에서 발생하는 java.net.SocketException: Socket closed 에러는 여러 가지 원인 때문에 발생할 수 있습니다. 이 에러는 주로 소켓이 열린 상태에서 어떤 이유로 인해 닫혔을 때 발생합니다. 몇 가지 원인과 해결 방법을 제안드립니다:

  1. Nginx 설정 확인:

    • 현재 worker_processesworker_connections 설정은 충분해 보이지만, 추가로 다음 설정들을 확인해보세요.
    • Nginx의 keepalive_timeout 설정을 증가시켜 보세요:
      
      keepalive_timeout 65;
      

    • client_body_timeout, client_header_timeout, send_timeout 등의 타임아웃 설정을 Nginx에서 늘려보세요:
      
      client_body_timeout 60s;
      client_header_timeout 60s;
      send_timeout 60s;
      

  2. JMeter 설정 확인:

    • Thread Properties에서 무한 루프가 설정된 상태여서 특정 시점에 부하가 과도하게 발생할 수 있습니다. Loop Count를 제한하여 테스트를 진행해보세요.
    • Timeout 설정을 늘려보세요. 현재는 10초로 설정되어 있지만, 네트워크 상태나 서버의 부하에 따라서 더 길게 설정해볼 수 있습니다.
  3. 서버 측 로그 확인:

    • Nginx와 백엔드 서버의 로그를 확인해보세요. 자원 부족이나 기타 오류가 발생하고 있는지 확인이 필요합니다.
  4. 시스템 자원 확인:

    • 테스트하는 머신의 CPU, 메모리, 네트워크 자원을 확인해보세요. 과도한 부하로 인해 자원이 부족할 수 있습니다.

추가적인 도움이나 구체적인 설정 파일 정보를 공유해주시면 더 자세한 도움을 드릴 수 있습니다.

Spring Boot Reference Documentation v3.1.5 > SpringApplication > Startup Failure 문서에서 더 유용한 정보를 확인할 수 있습니다.

문제가 잘 해결되길 바랍니다. 감사합니다.

모코코님의 프로필 이미지
모코코

작성한 질문수

질문하기