(1) 처리량 (읽기/쓰기 쿼리에 대한 QPS)
- 내 주변 상점을 검색하는 시스템을 만든다고 가정
- QPS 계산
- 하루에 시스템을 사용하는 능동 사용자 (DAU)는 100만명 (전체 가입자의 10%)
- 한 사용자는 하루에 평균 5번을 조회
- 100만 * 5 = 하루에 500만건 조회
- 500만건 / (60602400) = 초당 57건
(2) 시스템에서 예상되는 지연시간(읽기/쓰기 쿼리)
- 내 주변 사업장 검색 (읽기)
- 하루 평균 초당 57건
- 평균 응답속도 50ms
- 사업장 정보 상세조회 (읽기)
- 내 주변 사업장 검색에 비해 1/10 수준
- 하루 평균 초당 5건
- 평균 응답속도 200ms
- 사업장 정보 등록 (쓰기)
- 사업장 정보 상세조회에 비해 1/100 수준
- 하루 평균 초당 0.5건
- 평균 응답속도 800ms
(3) 읽기/쓰기 비율
- 읽기:쓰기 = 100:1
- 내 주변 사업장 검색 API (읽기)
- 사업장 정보 상세조회 API (읽기)
- 사업장 정보 등록 API (쓰기)
(4) 트래픽 추정치
- 전체 읽기 (QPS, 데이터 볼륨)
- 전체 쓰기 (QPS, 데이터 볼륨)
- 사용자 정보는 별도의 시스템이 지원한다고 가정하고 고려하지 않는다.
(5) 스토리지 추정치
- 사업장 정보
- 개당 데이터 사이즈 : 100KB
- 전체 데이터 사이즈 : 100만개 * 100KB = 100GB
- 메인 스토리지
- 여기서는 mongoDB를 선택
- 샤딩을 고려할 데이터 사이즈가 아니므로 PSA 구조로 구성한다고 가정하면 기본 2세트의 스토리지가 구성되어야 함 (Primary, Secondary)
- 데이터 건수 2천만건 이상, 데이터 사이즈 10TB 이상 규모로 성장할 경우 샤딩을 고려
- 하드웨어 구성
(6) 메모리 추정치