본문 바로가기
이론

서버 성능테스트

by 앗사비 2013. 7. 2.
728x90
  1. 용어
    1. 동시단말사용자/동시접속자 (Concurrent User)
      1. Active User : 요청 후 응답을 기다리는 사용자
      2. Inactive User : 요청하지 않고 있는 사용자
    2. 호출간격 (Request Interval)
      1. Response Time : 요청 후 응답받는 시간
      2. Think Time : 응답받고 다음 요청 전까지의 시간
    3. 처리량 (Throughput)
      1. 단위 시간당 처리량
      2. 일반적으로 TPS (Transaction Per Second) 사용
  2. 목표
    1. 서버 관점
      1. 사업팀이 제시한 수용인원(CU) 상태에서 안정적으로 동작해야 한다
    2. 사용자 관점
      1. 클릭 후 N초 내에 동작이 완료되야 한다
        1. 클라이언트 처리시간만 1.5초로 가정하면 서버에서는 약 0.5초로 산정
          1. 네트워크 전송 및 웹브라우저 해석에 의한 병목
  3. 공식
    1. 기본 공식
      1. ConcurrentUser = ActiveUser + InactiveUser
      2. ActiveUser = TPS * ResponseTime
      3. InactiveUser = TPS * ThinkTime
      4. RequestInterval = ResponseTime + ThinkTime
    2. 계산식 도출 (리틀의 법칙)
      1. ConcurrentUser = TPS * RequestInterval = TPS * (ResponseTime + ThinkTime)
      2. ActiveUser = ConcurrentUser * ResponseTime / (ResponseTime + ThinkTime)
  4. 목표값 제시
    1. 복합거래
      1. TPS
        1. CU, RT, TT는 비즈니스 수치이므로 사전 협의되야 한다
        2. CU 1650 명, RT 0.5초, TT 5초로 가정하면 계산식은 다음과 같다
          1. TPS가 300을 도달해야 한다
            1. 1650 = TPS * (0.5 + 5)
          2. AU는 150명으로 도출할 수 있다
            1. AU = 300 * 0.5
      2. 응답시간
        1. 90 백분위수 적용 (최대값이 10초인 경우 응답시간을 9초로 판단)
          1. 이상치가 발생하여 응답시간의 편차가 커질 경우, 대표값으로 평균을 사용하게 되면 왜곡된 수치가 나올 수 있다.
      3. 하드웨어
        1. CPU 점유율은 최대 60% 를 넘지 말아야 한다
          1. 제니퍼에서 제안하는 수치
          2. 장애 발생시 수치가 높아질 수 있음을 감안해야 함
    2. 단일거래
      1. 복합거래 TPS에 맞춰 병목구간을 찾아 최대한 튜닝한다
  5. 참고 URL


728x90