Skip to content

환경과 개요

yanggwangseong edited this page Jan 1, 2025 · 12 revisions

Test State Snapshot

  • 프로젝트 소스 코드
  • 데이터베이스 상태 (데이터, 인덱스 등)
  • k6를 통한 부하테스트 결과 테이블과 influxDB와 그라파나를 통한 시각화 차트
  • Clinic.js를 통한 프로파일링 결과

대상 API(4개)의 선정 기준

  • 현재 서비스에서 가장 부하가 많이 발생 할것 같은 API
  • 2개 이상의 mutation이 발생하는 데이터 정합성을 체크 할 수 있는 API

배포 환경의 데이터베이스

데이터의 개수

table_name row_count
article_likes 399,748
articles 200,000
black_list 8000
category 16
district 288
member 100,000
participation 399,779
refresh_token 100,002
region 2
verification_code 100,001

총용량

total_size_mb
202.59

부하 테스트 도구

  • k6
  • influxDB
  • grafana

프로파일링 도구

  • Clinic.js

배포 환경

  • 리눅스 CentOS 7.8 (64-bit)
  • 2vCPU, 4GB Mem, 50GB Disk
  • Mysql 8.0
  • node.js v22.11.0

프로 파일링

  • 프로 파일링을 위한 전용 Dockerfile 작성
  • NCP Container Registry에 백엔드 도커파일과 프로파일링 도커파일을 둘다 푸시
  • 배포 환경에서 docker를 통해서 clinic.js로 프로파일링 시작
  • 로컬에서 k6로 부하테스트시에 프로파일링 시작 후 종료되면 로컬로 clinic flame그래프 html 파일을 가져오기
Clone this wiki locally