2012-08-16 3 views
1

Jmeter를 사용하여 웹 응용 프로그램을 테스트합니다. 나는 두 개의 웹 서버를 가지고 있으며 부하 균형을 위해 HAProxy를 사용하고 있습니다. 모든 테스트가 제대로 실행되고 올바르게 구성되었습니다. 3 개의 jmeter 원격 클라이언트가 있으므로 테스트를 분산 실행할 수 있습니다. 내가 직면하고있는 문제는 모든 jmeter 요청이 웹 서버 중 하나에서만 처리되고 있다는 것입니다. 어떤 이유로 균형이 맞지 않아 많은 시간을 보내고 응답 시간이 아주 깁니다. 나는 이러한 요청이 균형을 이루도록하는 방법을 많이 살펴 보았지만 지금까지는 운이 없다. 누구든지이 행동의 원인이 될 수 있다는 것을 알고 있습니까? 제 환경에 대해 먼저 알아야 할 필요가 있으면 알려주고 답을 알려 드리겠습니다.모든 jmeter 요청은 haproxy가있는 서버 하나만 사용합니다.

답변

1

확인 당신 haproxy 구성 :하지 라운드 로빈 경우, 밸런싱 정책의 부하가 IP 소스 또는 3 개 원격 서버에 공통 될 수있는 몇 가지 다른 정보를 기반으로 무슨

  • ?

  • 부하 분산이 올바르게 작동하는지 확인 하시겠습니까?

당신이 계획 테스트 확인 디버깅에 대한 응답으로 웹 서버에 대한 몇 가지 정보를 추가 할 수 있다면, 첫번째 브라우저로 테스트 해보십시오 :

  • 당신은 당신이 어딘가에하지 않아도됩니다 당신의 하드 코딩 된 jessionid를 요청합니까?

  • 얼마나 많은 스레드를 구성 했습니까?

+0

저는 사무실 네트워크 환경에 있습니다. 내 IP는 프록시 서버에 따라 사무실의 외부 IP입니다 (내 3 대의 원격 서버에 대해 동일한 IP). 로드 밸런싱은 브라우저에서 바로 작동합니다. 테스트 계획에는 하드 코딩 된 쿠키가 없습니다. 내가해야 할 jmeter 설정이 있는지 궁금합니다. 라운드 로빈 균형으로 나는 동일한 결과를 얻습니다. –

+0

브라우저로 테스트 할 때 원격 서버로 사용되는 동일한 시스템에서 테스트 중이십니까? 귀하의 haproxy ipbased 또는 roundrobin의 정책은 무엇입니까? 브라우저로 테스트가 어떻게되는지 확인하는 방법은 무엇입니까? 3 개의 브라우저를 열고 각각 다른 서버로 이동합니까? –

+0

예. 이제는 라운드 로빈과 함께 작동합니다. 네트워크 관리자가 잘못 설정했기 때문에 라운드 로빈을 시도하기 전에 언급했지만 사실은 아니 었습니다. 지금 나는 가지고 있고 일하고있다. 답장을 보내 주셔서 대단히 감사합니다! –

0

Jmeter 스크립트에서 기본적으로 HTTP 요청 "KeepAlive 사용"헤더 옵션이 선택되어 있습니다.

유지 (keep-alive)는 간헐적으로 을 깨는에서 연결을 방지 클라이언트와 서버 사이의 지속적인 연결을 유지하는 헤더입니다. HTTP keep-alive로도 알려져 있으며, 메서드로 정의하여 HTTP 통신에 동일한 TCP 연결을 허용 할 수 있습니다. 은 새로운 요청마다 새 연결을 여는 대신 사용합니다.

이로 인해 모든 요청이 동일한 서버로 이동 될 수 있습니다. 옵션을 선택 취소하고 저장하면 스크립트가 중지되고 다시 실행됩니다.