[미션 4] 성능 테스트
Last updated
Last updated
웹 성능예산은 어느정도가 적당하다고 생각하시나요
웹 성능예산을 바탕으로 현재 지하철 노선도 서비스는 어떤 부분을 개선하면 좋을까요
부하테스트 전제조건은 어느정도로 설정하셨나요
Smoke, Load, Stress 테스트 결과를 공유해주세요
이거 결론 내리는데 너무 오랜 시간이 걸린 반면에 얻은게 별로 없다. 꼭 미션 때문은 아니라 그냥 궁금하기도 해서 웹 서비스를 하는 회사에서 실제 업무를 하고 있는 지인 개발자들을 통해서 실제로 ‘웹 성능 예산’의 개념을 적용하는지를 물어봤는데, 4명 중 2명은 실제로 적용하고 있다고 답변을 해줬다. 그런데 ‘웹 성능 예산’이라는 거창한 개념을 잘 모르고 있거니와, 대부분 ‘그냥 이렇게 정해져 있어서 나는 그걸 따라야한다’로만 알고 있지 그게 어떤 기준에서 정해졌는지는 아무도 모르고 있었다.
가령 지인이 이미지 용량이 10메가 이하여야 하는 회사의 룰이 있다고 알려줬는데, 내가 궁금했던 것은 5도 아니고 100도 아니고 10메가가 기준이 된 배경이 궁금했는데 정작 지인도 그걸 모르고 있었다.
저기서도 명확한 답을 준다기 보다는 경쟁 사이트 혹은 유사 사이트에 대해서 먼저 조사를 해보고 그 뒤에 나의 서비스 특성에 맞게 ‘알아서 잘’ 설정하라고 하고 있었고 그래도 진짜 정하기가 힘들다 그러면 일반적인 아래의 룰을 따르라고 했다. 물론 아래의 룰에 대해서도 특별히 기준은 없다.
Under 3 seconds page load time
Less than 5 seconds TTI
Maximum 200 KB of compressed critical-path resources
현재 실습중인 사이트를 성능테스트를 해봤더니 아래와 같은 결과가 나왔다. 가이드 해주는 대로 text compression을 할 수 있도록 설정해줬더니 점수도 오르고 그 워닝이 없어졌다.
.properties에 아래와 같이 적용하면 text compression이 된다.
점수가 21점에서 40점으로 올랐다
'텍스트 압축 사용' 하라는 추천이 사라졌다
일단 부하테스트는 목표를 갖고 수행해야하고 성능 목표는 rps와 latency 두 가지 개념으로 세울 수 있다. 두 개념 각각에 대한 이해와 두 개념이 어떻게 엮여 있는지는 이미 이전 포스팅에서 정리된 블로그를 첨부했기에 여기서는 넘어간다.
목표 rps를 정하는게 힘들었는데, 목표 rps와 latency를 선정하려면 애초에 ‘평소에 이 서비스를 몇명이 이용’ 한다던가 ‘최대로 많이 몰렸을 때 어느 정도 몰리는지’에 대한 데이터가 있어야 합리적인 목표로 삼을 만한 rps와 latency를 계산 할 수 있는데 그런 사전 데이터가 없어서 너무 막연했다.
그래서 그냥 무의미하게 목표치를 선정해보기 보다는 강의 자료에도 나와있는 이상적인 latency를 기준으로 몇 VUser일때 rps가 이정도 나오구나 를 모니터링 하는 방식으로 실습했다. 95퍼센트 이상의 요청에 대해서 http_req_duration이 100ms 이하로 나오도록 한계점을 아래와 같이 설정하고 테스트를 진행했다.
그래서 ‘how to set web performance budget’ 이라고 검색해서 여기저기를 찾다가 에서 추천해주는 방식이 있었는데 나름 합리적으로 보여서 차용했다.