평균 응답시간의 의미

2018년 11월 23일

response_time

애플리케이션 성능 분야에서 평균 응답시간은 애플리케이션 서버가 사용자에게 요청 결과를 반환하는 데 걸리는 시간을 말합니다. 애플리케이션 서버의 응답시간은 일반적으로 밀리 세컨드에 가깝지만 부하량에 따라 많은 시간이 걸리기도 합니다.

고객이 기다리는 시간 3초

radware_ecommer_page_speed_01
radware_ecommer_page_speed_02 그림 출처 : 2015년 라드웨어 분석 자료

인터넷 초창기인 1999년 전자 상거래 사이트의 최적 로드 시간은 8초였습니다. 2006년도에 들어서는 4초까지 줄어들었습니다. 그리고 지금은 3초를 고객을 떠나게 만드는 시간으로 이야기합니다. 구글이 운영하는 애드센스에서는(https://support.google.com/adsense/answer/7450973?hl=ko)은 모바일 페이지가 로드되는데 3초가 지나면 사용자의 절반 이상이 서비스를 포기한다고 조사결과를 발표했습니다. 3초라는 시간 속에는 웹페이지의 렌더링 시간과 네트워크가 사용하는 시간 등이 포함되어 있기 때문에 웹 애플리케이션이 소모해야 하는 시간은 실제로 밀리 세컨드에 가깝습니다. 하지만 실제 서비스의 장애가 발생하면서 웹 애플리케이션의 평균 응답시간은 점점 길어지게 됩니다.

성능 분석에서 평균 응답시간

response_time_example_01

부하가 늘어나면서 임계치가 넘어가면 초당 처리량은 더 이상 증가하지 않게 됩니다. 논리적으로 생각해보면 초당 처리량이 더 이상 증가하지 않은 상태에서 사용자만 늘어나면 TPS와 인지시간이 상수처럼 동작하므로 응답시간이 사용자에 비례하여 늘어나게 됩니다.

[응답시간(Respose Time) = [동시 사용자 수 / 초당 요청 수(TPS)] - 인지시간(Think Time)]

하지만 일반적인 상황에서 응답시간은 밀리 세컨드 단위의 값인데 비해 인지시간은 3초에서 10초 이상의 값을 가지게 됩니다. 그럼 이번에는 성능을 분석하는 스토리를 만들어보겠습니다. 우리가 영어 문장을 한글로 번역하는 웹서비스를 만든다고 가정해 보겠습니다. 우리는 동시 사용자 100명을 예상하고 서비스를 만들고 있습니다. 여기서 서비스 특성상 사용자가 한번 번역을 요청하고 다음번 요청을 보내는 데 평균 30초의 시간이 걸립니다. 마지막으로 최대 응답시간은 0.5초를 넘지 않도록 설계하려고 합니다.

이런 경우 우리가 목표로 하는 초당 요청 수는 서비스를 동시에 사용하는 사람들의 요청을 시간으로 나누므로 계산식은 동시 사용자 수(100명) / (응답시간(0.5초) + 인지시간(30초))이고 결과값은 약 3.27이 됩니다.

초당 요청 수 (TPS) = 동시 사용자 수 / [응답시간(Response Time) + 인지시간(Think Time)]

이렇게 성능을 계산하는 과정에서 서비스의 처리시간 즉, 응답시간은 인지시간에 비해 매우 적기 때문에 인지시간이 커지면 커질수록 TPS에 관여하는 비율이 0에 수렴하게 됩니다.

결론적으로, 성능을 설계하는 시점에서 응답시간은 별로 중요한 이슈가 아니게 됩니다. 대신 인지시간이 중요해집니다.

인지시간(Think Time)이란?

response_time_example_02

웹 서비스를 사용하는 자신의 요청을 확인하는 시간이 필요합니다. 이렇게 이전 요청과 다음 요청 사이의 시간을 인지시간이라고 합니다. 인지시간은 사용자나 서비스 유형에 따라 다릅니다. 예를 들어, 시스템 간 상호 작용은 사람이 관여하는 웹 서비스 상호작용에 비해 매우 낮은 인지시간을 포함합니다. 또는 블로그 서비스에 비해 사전검색 서비스의 인지시간은 매우 짧을 것입니다. 서비스의 도메인을 분석하여 인지시간을 결정하는 것은 매우 중요합니다. 인지시간을 사용하여 분당 완료해야 하는 요청 수는 물론 시스템에서 지원할 수 있는 동시 사용자 수를 계산할 수 있습니다.

튜닝 지표로서의 평균 응답시간

현실에서 웹 서비스의 응답시간은 수식과 다르게 나타나게 됩니다. 그래서 많은 선능 분석도구가 평균 응답시간을 보여주고 있습니다. 실제 성능 분석 도구들이 알려주는 평균 응답시간은 수집 주기 동안에 수집된 트랜잭션의 응답시간을 합산하여 평균한 값입니다.

response_time_example_03

와탭의 서비스는 5초 간격으로 평균 응답시간을 계산합니다. 응답시간이 성능 지표보다 튜닝 지표로서의 의미를 가집니다. 예를 들어, 사용자가 적은 밤 시간에 배치잡과 같은 일부 응답시간이 길어짐으로써 사용자가 많은 낮보다 평균 응답시간이 더 길수도 있습니다. 하지만 실제 성능을 올리기 위한 지표로써 응답시간은 매우 직접적입니다. TPS와 상관없이 평균 응답시간이 길어지는 요소가 있다면 주변 요소와 함께 평균 응답시간을 살펴봐야 합니다.

운영 중인 서비스의 평균 응답시간이 궁금하다면?

와탭 무료로 시작하기
관련 url
https://www.utest.com/articles/e-commerce-websites-3-seconds-target https://www.radware.com/documents/infographics/sotu-ecommercepagespeed-spring-2015/
이전 글

다음 글

최신글