TPS (초당 요청량, Transaction Per Second )
초당 처리되는 트랜잭션의 수를 나타내는 지표
시스템의 성능을 평가하는 중요한 지표 중 하나
특히, 대규모 시스템에서 중요한 역할을 수행
시스템이 얼마나 많은 요청을 동시에 처리할 수 있는지 나타냄.
시스템의 처리 능력을 가늠할 수 있게 해줌.
시스템이 초당 요청량(TPS)을 견딜 수 있어야 한다.
이를 위해선 일간 접속량이 아닌, 특정 시간대에 초당 접속자 요청량이 가장 많은 시간을 파악해야 함.
-> 시스템의 용량 계획을 세우는 데 매우 중요
예상치 못한 이벤트로 인해 설계 예상 이상의 요청이 몰리는 경우 시스템이 중단될 수 있음.
이를 대비하기 위한 다양한 방법
1. 애플리케이션의 수를 늘리기
2. 오류 상황에서 사용자가 대기할 수 있도록 대기열 설정
3. 자동 스케일링을 통해 시스템의 자원을 동적으로 할당하여 부하를 분산시키는 것도 중요
요청 방식에 따른 개발
시스템이 읽기 전용인지, 쓰기 및 업데이트를 위한 것인지 중요.
이를 파악하고 처리 속도를 빠르게 하여 응답하면 더 많은 사용자 수용 가능.
- 데이터 제공 및 저장에서 가장 많은 시간을 소모하는 파트는 대부분 DB에서 데이터를 조회하거나 쓰는 것.
요청 종류에 따라 이 부분의 허들을 최소화하는 것이 중요.
읽기 요청 최적화
✔️ 캐시 사용
- 모든 사용자가 같은 데이터를 사용하는 경우, DB의 데이터를 Redis와 같은 캐시에 올려두면 요청에 대한 응답 속도 빠르게 할 수 있음
- 캐시를 사용하면 데이터를 빠르게 제공 가능, DB 부하 감소
- 개인화된 데이터가 아니라면 캐시를 사용하여 데이터 로드에 시간 소요를 최소화하는 방법이 중요.
- 데이터에서 필터된 데이터를 가져오는 것보다 Redis에서 필터된 데이터를 가져오거나 애플리케이션 로직에서 필터링을 수행하는 것이 더 큰 성능 상의 이점을 가짐.
- 엣지 단에서 캐싱 처리 시 시스템의 요청 처리량이 줄어들어 적은 수의 애플리케이션으로도 요청 처리 가능.
엣지 캐싱은 사용자와 가까운 곳에서 데이터 제공 -> 네트워크 지연 최소화, 사용자 경험 향상
- 캐싱 전략 설계 시 캐시 갱신 정책도 중요.
예) 데이터가 자주 변하지 않는 경우 -> 캐시 유효 기간 길게 / 변경 잦은 경우 -> 유효 기간 짧게
- 데이터 소실 위험을 줄이기 위해 데이터 유효성을 지속적으로 검증, 소실 여부 확인.