TIL(Today I Learned)

[DOGUIN] 마이페이지 캐시 적용 전후 성능 비교

yunseohhe 2024. 11. 13. 11:22

1. 프로젝트 개요

  • 프로젝트 이름 : 도구인
  • 프로젝트 개요
      : 도구인은 개발자와 의뢰인 간의 원활한 소통과 협력을 돕기 위해 설계된 외주 플랫폼입니다. 이 플랫폼을 통해 개발자들은 외주 프로젝트를 쉽게 찾고 수주할 수 있으며, 의뢰인들은 프로젝트 의뢰 및 진행 상황을 간편하게 관리할 수 있습니다. 커뮤니티 기능을 통해 개발자들 간의 정보 공유와 네트워킹을 지원하여, 보다 효율적인 협력 환경을 조성하는 것을 목표로 합니다.

 

2. 테스트 목적

  • 캐시 적용 전후 성능 차이를 비교하여 캐시 적용이 성능에 미치는 영향을 분석
  • 3단계 부하 테스트(초기, 증가, 최대 부하)로 사용자 증가에 따른 서버의 안정성 검증

 

3. 테스트 환경

  • 테스트 도구 : Locust
  • 테스트 대상 : 마이페이지 API(/api/v1/mypages)
  • 캐시 기술 : Local Cache (Ehcache 사용)

 

4. 테스트 시나리오

가. 초기 부하 단계

  • 사용자 수 : 50명
  • Ramp-up 시간 : 10초
  • 목적 : 서버의 기본 성능을 확인하고, 소수의 사용자에서 캐시 적용 전후의 응답 속도 비교

나. 증가 단계(중간부하)

  • 사용자 수 : 150명
  • Ramp-up 시간 : 5초
  • 목적 : 사용자 수가 증가할 때 캐시 전용 전후의 응답 속도와 서버 안정성을 평가

다. 최대 부하 단계

  • 사용자 수 : 500명
  • Ramp-up 시간 : 5초
  • 목적 : 서버의 최대 성능 한계를 확인하고, 캐시 적용으로 서버가 최대 부하를 견딜 수 있는지 검증

 

5. 테스트 결과 요약

테스트 단계 캐시 적용 여부 평균 응답 시간(ms) 95% 응답 시간(ms) 최대 응답 시간(ms) 초당 요쳥 수(RPS)
초기 부하
(50명)
적용 전 11.3 20 138 16.5
적용 후 8.8 16 149 16.3
중간 부하
(150명)
적용 전 9.31 18 112 49.7
적용 후 6.48 14 116 50.3
최대 부하
(500명)
적용 전 9.67 22 108 164.4
적용 후 6.99 19 190 165

 

 

6. 분석 결과

캐시 적용 전후의 성능 차이를 확인하고, 각 부하 단계에서의 서버 응답 성능을 비교하여 최적화 효과를 평가하는 데 중점을 두었습니다. 아래는 각 부하 단계별로 캐시 적용 전후의 성능 변화를 분석한 결과입니다.

 

가. 초기 부하 단계

  • 캐시 적용 전
     : 평균 응답 시간이 11.3ms, 95% 응답 시간이 20ms, 최대 응답 시간은 138ms로 나타났습니다. 초당 요청 수(RPS)는 16.5로 안정적으로 처리되었으나, 최대 응답 시간에서 일부 느린 응답이 발생했습니다.
  • 캐시 적용 후
     : 평균 응답 시간은 8.8ms로 약 22% 감소하였고, 95% 응답 시간과 최대 응답 시간도 각각 16ms와 149ms로 개선되었습니다. RPS는 16.3으로 유지되며 안정적인 처리 성능을 보여주었습니다.
  • 결과 요약
     : 초기 단계에서 캐시를 적용함으로써 평균 응답 시간이 약 22% 개선되었으며, 사용자 경험이 긍정적으로 향상될 수 있음을 확인할 수 있습니다.

초기 부하 단계 - 캐시 적용 전
초기 부하 단계 - 캐시 적용 후

나. 증가 단계(중간부하)

  • 캐시 적용 전
     : 평균 응답 시간이 9.31ms, 95% 응답 시간이 18ms, 최대 응답 시간은 112ms로 나타났습니다. 초당 요청 수(RPS)는 49.7로 처리 성능이 향상되었습니다.
  • 캐시 적용 후
     : 평균 응답 시간은 6.48ms로 약 30% 개선되었으며, 95% 응답 시간과 최대 응답 시간도 각각 14ms와 116ms로 약간의 변화가 있었습니다. RPS는 50.3으로 소폭 증가하며 부하 처리 성능이 강화되었습니다.
  • 결과 요약
     : 중간 부하 상황에서 캐시를 적용한 후 응답 시간이 30%가량 개선되었고, 안정적인 부하 처리 성능을 유지하여 사용자 요청이 많은 상황에서도 성능 개선이 효과적임을 알 수 있었습니다.

중간 부하 - 캐시 적용 전
중간 부하 - 캐시 적용 후

다. 최대 부하 단계

  • 캐시 적용 전
     : 평균 응답 시간이 9.67ms, 95% 응답 시간이 22ms, 최대 응답 시간은 108ms로 나타났으며, RPS는 164.4로 서버가 고부하를 안정적으로 처리할 수 있음을 확인했습니다.
  • 캐시 적용 후
     : 평균 응답 시간은 6.99ms로 약 28% 개선되었고, 95% 응답 시간과 최대 응답 시간은 각각 19ms와 190ms로 소폭 변화했습니다. RPS는 165로 유지되었습니다.
  • 결과 요약
     : 최대 부하 상황에서도 캐시 적용이 서버 응답 시간을 약 28% 개선시키는 효과가 있었으며, 초당 요청 수를 유지하여 안정적인 서버 처리 성능을 보장했습니다.

최대 부하 단계 - 캐시 적용 전
최대 부하 단계 - 캐시 적용 후

 

 

7. 테스트 최종 결론 및 배운점

   이번 성능 테스트를 통해 캐시 적용이 서버 성능 최적화에 미치는 긍정적인 영향을 테스트를 통해 직접 확인할 수 있었습니다. 캐시를 적용함으로써 각 부하 단계에서 평균 응답 시간과 최대 응답 시간이 크게 개선되었으며, 특히 중간 및 최대 부하 상황에서 28~30%의 성능 향상 효과가 나타났습니다. 또한, RPS(초당 요청 수)가 일정하게 유지되며 서버가 고부하 상황에서도 안정적인 성능을 제공할 수 있음을 확인했습니다.

이 경험을 통해 캐시의 필요성을 이해하고 시스템 아키텍처 최적화 방안을 학습할 수 있었으며, 부하 단계별 성능 테스트 설계와 분석 능력도 향상되었습니다. 이번 경험은 실제 프로젝트에서 서버 리소스 효율성 및 안정성을 높이는 기술적 방안을 적용할 수 있는 기반을 마련하는 데 기여했습니다.