1. 테스트 개요
- 시행 배경 : 평균 응답 시간 2.37초(P95 4.46초)
- 해결 방안 : 인메모리 데이터 기반의 Redis 도입하여 레이턴시 절감.
- Redis를 사용한 이유 : 수업 스케쥴과 같이 데이터가 일정한 형태며 디스크 기반의 몽고 db보다는 인메모리 기반의 redis가 조회속도에서 이점이 있기에 선택.
2. 테스트
- 전체 데이터 수: 1,637,346개
- 최대 VUs: 60명
- 시나리오: 1분간 반복 요청
- 평가 항목: 요청 수, 응답 시간, 대기 시간, 실패율 등
- 하드웨어: Synology 920+(CPU: Celeron J4125, RAM : 20GB(4+16)GB)
- 네트워크
- 공유기 : iptime a6004mx
- 연결 방식 : Nas와 공유기는 유선 이더넷으로 연결
- 테스트 환경 : 클라이언트와 서버는 동일 네트워크 내에 존재하며 wifi로 연결
기본 성능
항목 | 1차 | 2차 | 3차 | 4차 | 5차 | 평균 |
---|---|---|---|---|---|---|
완료 요청 수 (Throughput) | 605 | 811 | 870 | 881 | 942 | 821 |
평균 응답 시간 | 3.17초 | 2.35초 | 2.18초 | 2.14초 | 2.00초 | 2.37초 |
최대 응답 시간 | 8.01초 | 5.95초 | 6.31초 | 5.20초 | 4.88초 | 6.07초 |
95% 응답 시간 이하 | 5.18초 | 4.68초 | 4.49초 | 3.96초 | 4.00초 | 4.46초 |
평균 대기 시간 | 3.17초 | 2.35초 | 2.18초 | 2.14초 | 2.00초 | 2.37초 |
평균 VUs 사용량 | 23 | 9 | 1 | 26 | 23 | 16.4 |
요청 실패율 | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% |
성공률 (status 200) | 100% | 100% | 100% | 100% | 100% | 100% |
총 요청 수 | 4,109건 | |||||
전체 대비 처리율 | 0.25% (4,109 / 1,637,346) |
SLO 설정
항목 | 캐싱 전 성능 | SLO 목표 (인터넷 환경) | 설명 |
---|---|---|---|
P95 응답 시간 | 4,460ms | 500ms 이하 | P95 920+의 하드웨어 한계와 대역폭 및 속도를 고려한 속도 설정 |
평균 응답 시간 | 2,370ms | 200ms 이하 | 평균 2,370ms에서 캐싱을 이용해서 평균 응답시간 200ms 목표 |
가용성 (Availability) | 100% (성공률) | 99.9% 이상 | 성공률 100%로 안정적. 기존 안정성을 유지하는 것을 목표로 설정 |
처리량 (Throughput, RPS) | 13.7 RPS | 20 RPS 이상 | RPS 13.7에서 약 50%~100% 증가 목표 |
오류율 (Error Rate) | 0% | 0.1% 미만 | 오류율 0%로 안정적. 네트워크 불안정성 고려해 0.1% 미만 설정. |
결과
항목 | 1차 | 2차 | 3차 | 4차 | 5차 | 평균 |
---|---|---|---|---|---|---|
완료 요청 수 (Throughput) | 4,206 | 4,454 | 5,440 | 4,954 | 5,793 | 4,969 |
평균 응답 시간 | 431ms | 407ms | 332ms | 366ms | 312ms | 371ms |
최대 응답 시간 | 1.35초 | 1.80초 | 1.25초 | 1.99초 | 1.29초 | 1.53초 |
95% 응답 시간 이하 | 788ms | 778ms | 630ms | 958ms | 653ms | 762ms |
평균 대기 시간 | 431ms | 407ms | 332ms | 366ms | 312ms | 369ms |
평균 VUs 사용량 | 59 | 59 | 59 | 59 | 59 | 59 |
요청 실패율 | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% |
성공률 (status 200) | 100% | 100% | 100% | 100% | 100% | 100% |
총 요청 수 | 24,847건 | |||||
전체 대비 처리율 | *1.52% *(24,847 / 1,637,346) |
결과 요약
지표 | 캐시 미적용 | 캐시 적용 | 변화 |
---|---|---|---|
평균 요청 수(Throughput) | 821 | 4,969 | 6배 증가 |
평균 응답 시간 | 2.37초 | 371ms | 6.4배 개선 |
최대 응답 시간 | 6.07초 | 1.53초 | 짧고 안정적 |
평균 대기 시간 | 2.37초 | 369ms | 성능 최적화 |
평균 VUs 사용량 | 16.4 | 59 | 더 많은 부하 감당 |
처리율 | 0.25% | 1.52% | 약 6배 처리량 증가 |