동접 증가에 따른 테스트

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

동접 증가에 따른 테스트

김성환
This post was updated on .
안녕하세요.
이번에 nGrinder 설치하여 테스트 중에 있습니다.
테스트 케이스에 대한 질문이 있어 드립니다.

하나의 스크립트에  8개의 api를 sleep을 0.5초씩 주고 호출하게 작성하였습니다.(post로 json값 넘김)
테스트는 이상없이 잘 됩니다.
여기서 질문은

서버 한대당 몇명을 받을 수 있는지 테스트를 하고 싶은데,
테스트 설정을 어떻게 해야 되는지 도저히 감이 안옵니다.

동접이 몇명이었을때 서버가 오류가 뻗는지 알고 싶습니다.
동영상도 보고 했는데, Rampup을 사용하라고 하는데 감이 안오네요.

현재는 에이전트 1, 에이전트별 가상사용자 800(프로세스20, 쓰레드40) 해서 10분간 돌리고 있는데, 서버에 오류가 나지 않습니다. 이렇게 하면 동접 800명을 받을수 있다는 건가요?

좋은 프로그램 만들어 주셔서 감사합니다.
수고하세요.
Reply | Threaded
Open this post in threaded view
|

Re: 동접 증가에 따른 테스트

songeunwoo
안녕하세요.

각각의 상황에 따라 서버 한계 상황을 만드는데에는 차이가 있을거라 생각 됩니다.
에이전트와 서버가 같은 네트워크 망에 있는지 없는지에 따라서도 네트워크 부하량이 다르기 때문에 차이가 있을거라 보이구요.
일반적으로 vuser(가상사용자) 800으로 하였을 경우, 동접 800명이 스트레스 테스트를 하는 효과를 주는건 맞습니다.
자체적으로 에이전트의 한계치를 테스트한 결과,
2Core 4GRam VM 에서 Groovy로 단순 HTTP Call을 sleep time 없이 때리는 테스트의 경우 약 6000 가상유저까지 15분가량 1개의 에이전트가 동작 가능하였습니다.

하지만 이 경우에는 무조건적인 호출이기 때문에 실제 사용자 행하는 것같은 thinktime이 없는 경우이고,
실제 유저 행위를 시뮬레이션하여 10초씩 thinktime을 주신다면, 에이전트 1개당 1만 thread 까지는 견딜 겁니다.
에이전트에서는 메모리가 가장 중요한 이슈이기 때문에, 저희는 에이전트당 4G 이상의 Ram 을 가진 머신을 권장 드립니다.
동접자에 따른 서버 부하 체크는 web,was 설정에 따르기 때문에 가상유저를 늘려가며 테스트 해보시면 될거 같습니다.
Rampup 기능은 해당 테스트에 가중치를 보다 쉽게 주기 위한 기능이라 보시면 됩니다.

감사합니다.
Reply | Threaded
Open this post in threaded view
|

Re: 동접 증가에 따른 테스트

김성환
답변 감사합니다.
thinktime 이 제가 하나의 스크립트에 만든것 처럼 api 호출할때마다, sleep를 주는 건가요?

Reply | Threaded
Open this post in threaded view
|

Re: 동접 증가에 따른 테스트

songeunwoo
네 맞습니다.

사용자가 하나의 요청을 하기 위해 생각하는 시간을 thinktime 이라고 표현 하였습니다.