Inflearn brand logo image

인프런 커뮤니티 질문&답변

김정우님의 프로필 이미지
김정우

작성한 질문수

백엔드 애플리케이션 성능 테스트하기

높은 부하를 받았을 때의 성능 테스트 결과 해석하기

Latency에 대한 질문이 있습니다!

작성

·

57

0

강의 너무 잘 듣고 있습니다.

Latency에 대한 질문이 있습니다!

예를 들어 API서버가 Server Side Event와 같이, 스트리밍 형태의 응답을 반환한다면, Artillerys는 지연율을 어떻게 계산할까요?

First Time To Byte를 지연율로 표시해줄지 아니면, 전체응답을 다 수신한 뒤 지연율을 계산해주는지 궁금합니다!

답변 3

0

이준형(Foo)님의 프로필 이미지
이준형(Foo)
지식공유자

김정우님 오래 기다리게해서 죄송합니다.

관련해서 답변 드리겠습니다.

 

우선 Artillery는 FTTB(First Time To Byte)가 아닌 전체 패킷이 수신된 후를 기준으로 지연 시간을 계산합니다. 따라서, 스트리밍 서비스에서 오는 데이터 사이즈가 크다면 네트워크 대역폭에 따라 FTTB와 Atrillery가 계산한 지연 시간 사이에 꽤 큰 차이가 발생할 수 있습니다.

 

이 상황에서 어떤걸 목표로 삼을지는 어떤 서비스, 어떤 스트리밍 데이터인지, 어떤 성능을 튜닝하려고 하는지 등 개발자가 정해줘야할 것 같습니다.

 

만약 데이터 사이즈가 크다면 FTTB는 서버와 클라이언트 사이의 네트워크 지연 시간을 측정하는 데에만 참고로 활용하고, 실제 사용자가 체감하는 지연 시간은 패킷이 전체가 전달되는게 중요한 서비스라면 튜닝 대상을 패킷 전체가 전달되는 '전체응답을 다 수신한 뒤 지연율'을 타겟으로 튜닝을 해야할 것 같습니다.

 

다만 FTTB가 성능 튜닝의 목표가 되어야하는 서비스라면 Atrillery 말고 FTTB를 측정하고 모니터링할 수 있는 성능 테스트 툴을 사용해보시면 좋을 것 같습니다. 또한 전체 응답이 느려지더라도, 사용자가 FTTB만 충분히 빠르다면 서비스가 빠르게 동작하고 있다고 인지할 수 있는 UX를 만드는 것도 중요한 것 같습니다. 빨리 수신되어야하는 데이터와 사이즈가 큰 데이터를 구분하는 형태로요.

 

결과적으로 지연율을 어떤 기준으로 표기해줄지는 선택의 문제라고 생각됩니다!

질문주신 내용에 대한 답변이 됐을까요?

또 궁금한 내용 있으면 질문 남겨주세요.

감사합니다.

0

이준형(Foo)님의 프로필 이미지
이준형(Foo)
지식공유자

김정우님 안녕하세요!

제가 현재 해외에 나와있어서 내일 복귀하는대로 답변 드리겠습니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

김정우님, 전송 지연율(Latency) 측정에 대해 질문해 주셨네요. 스트리밍 형태의 응답에서는 일반적인 Request/Response 방식과 달리 데이터가 연속적으로 전달되기 때문에 지연 시간(Latency) 측정이 약간 다를 수 있습니다.

Artillery와 같은 성능 테스트 도구에서 스트리밍 응답에 대한 지연 시간을 측정할 때, 일반적으로 First Byte Time (FBT), 즉 첫 바이트가 도착하는 시간을 기준으로 지연 시간을 측정합니다. 이는 서버가 클라이언트로부터 첫 번째 데이터를 전송하는 데 걸리는 시간을 측정하는 방법으로, 지연을 초기에 감지할 수 있는 유용한 척도입니다.

하지만 전체 응답을 다 수신하는 데 걸리는 시간, 즉 스트리밍이 종료될 때까지의 전체 “소요 시간”은 지연 시간보다는 응답 완료와 관련된 또 다른 측정 지표로 볼 수 있습니다. 따라서 일반적으로 Latency는 FBT를 기준으로 계산되며, Artillery는 이 방식을 사용해서 성능을 평가할 가능성이 높습니다.

위 내용을 더 심도 있게 이해하고 싶으시다면 다음 유사한 질문을 참고해 보세요:
- postman에서 API 테스트했을 때 응답 레이턴시 차이가 있는 이유
- 기준이 뭘까요??

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

김정우님의 프로필 이미지
김정우

작성한 질문수

질문하기