X
STEN 회원이 되시면 테스팅에 관한 많은 정보와 자료를 공유할 수 있도록 저희가 돕겠습니다.
아이디
패스워드
자동로그인 사용
 
아직 회원이 아니십니까?    
아이디/패스워드를 잊으셨습니까?    

     
   
[Jmeter 강좌 - 1] 일반적으로 성능테스트 툴에서 TPS 제어 방법
글쓴이 : Jmeter 날짜 : 15-12-08 10:51 조회 : 4345


성능테스트 목표 설정 시, 가장 중요한 부분이 Throughput 입니다.



Throughput은 일반적으로 처리량을 뜻하며, TPH, TPM, TPS 등 단위 시간당 처리 건수로 구분할 수가 있습니다.



성능테스트에서는 보통 초당 처리건수 즉 TPS(Transaction Per Second)를 사용합니다.



                            TPS = 성능테스트 툴에서 할당된 사용자 수 / 요청 간격



일반적으로 TPS를 제어하는 방법은 2가지가 있습니다.



1. 성능테스트 담당자가 TPS 제어

    - Think Time을 이용

    - Pacing Time을 이용



2. 성능테스트 툴에서 TPS 제어

    - Silkperfomrer(Microfocus 제품) Queuing 모델

    - RPT(IBM 제품) Paced Loop 모델

    - Jmeter의 Constant Throughout Timer



일단 성능테스트 툴에 TPS제어를 맡기는 방법은 좋은 선택이 아닙니다.

TPS를 명시적으로 사용자수/Request Interval  형태로 제어할 수 없기 때문에 불필요하게 많은 사용자를 할당해야 하는 경우도 생길 수 있습니다. 반대로 사용자를 적게 할당하면 아무리 테스트를 해도 목표 TPS를 못맞추는 경우도 생길수가 있습니다.



그래서 저는 개인적으로  성능테스트 담당자가 TPS제어하는 방법을 선호합니다. 

Think Time을 이용한 TPS 제어는 약간의 문제점이 있습니다.

어떤 업무에 대해서 응답시간을 1User로 측정해보니 평균 2초가 나왔다고 가정하고, 이 업무에 대해서 목표 TPS가 2라고 하면, 목표 TPS를 맞추기 위해서 사용자수를 10명할당하고, Think Time을 3초로 설정했다고 가정합시다.

그럼 아래와 같은 패턴으로 부하가 발생하겠죠.



  (1번째 요청)        3초 think Time   (2번째 요청)        3초 think Time   (3번째 요청)           3초 think Time 

| ------------>| =============== |------------->| ================| -------------->|==================|   



위와 같은 패턴에서 부하량이 적을 때는 응답시간이 2초를 유지하여 각 User 별로 5초의 요청간격을 유지해 줄수 있으나 부하량이 많아지면 응답시간이 늘어날 수가 있습니다. 그렇게 돼면 목표로 하는 2TPS를 만족못할 수도 있습니다.



그래서 불필요하게 무조건 3초의 Think Time이 아니라, 3초의 시간을 여유롭게 사용할 수 있는 방법이 Pacing Time 입니다. 위와 같은 조건에서 Pacing Time이 5초로 설정되어 있다고 가정하면, 만약 응답시간이 3초로 늘었더라도 Pacing Time으로 적용된 경우에는 성능테스트 툴에서 2초를 쉬고 다음 요청을 보냅니다. 즉 응답시간이 5초 이내인 경우에 대해서는 무조건 요청간격을 5초로 맞춰줄 수 있습니다.



결론적으로 TPS를 명확히 제어하기 위해서는 Request Interval을 제어할 수 있는 Pacing Time 방법을 사용해야 합니다. 



Jmeter에서도 Request Interval을 제어할 수 있습니다.



방법은 아래 URL을 참고하세요... 플러그인 자료실에 있는 내용입니다.

http://www.sten.or.kr/club/club_main.php?cmd=board&cb_id=cb_Jmeter&page=1&sfl=&stx=&sop=&sca=Plugin+%C0%DA%B7%E1%BD%C7&wr_id=38&sca=Plugin+%C0%DA%B7%E1%BD%C7


검도인 01 15-12-08 11:48
좋은 강좌 공유 감사합니다^^
자바커피 15-12-08 13:06
오우.. 좋은 강좌네용~
     
Won님 15-12-09 23:37
같은 생각입니다.^^
김성민_Passion 16-01-08 09:57
좋은 정보 감사요~!
랄국 16-01-28 16:08
좋은자료 공유 감사합니다!!