728x90
- 동시에 몇개의 요청을 받았을때 서버의 에러가 급격하게 늘까 ? ( 임계점 식별 )
- 각 HTTP 메서드마다 얼마의 요청을 버틸 수 있을까 ? ( 병목 구간 개선 )
- 각 테스트는 가장 무겁고 처리 로직이 복잡한것으로 선택한다.
테스트는 POST / GET 이 있다.
GET
게시물 조회를 선택했다.
게시물 조회는 현재 게시물의
좋아요 개수, 댓글 개수 , 각 댓글의 좋아요 갯수 , 대댓글 갯수 , 페이징 처리 , 차단 유저 제외
데이터를 가져오도록 설계되어, 많은 테이블의 조인과 서브쿼리가 사용되어 무겁다고 판단 하였다.
Post
게시물 생성 API 를 선택했다.
게시물 생성로직은 여러 파일이 전송 되어야 해서 선택 하게 되었다.
RPS: 초당 요청 수(request per sec)
TPS: 초당 트랜잭션 처리 수 (transaction per sec)
MTT : 요청에 걸린 시간
TEST ( 5분 )
목표 :
순간 요청을 몇개 정도 받을때 오류 없이 처리 할 수 있는지 확인 한다.
( DAU 가 어느 수치가 될때 서버를 scale-up 을 할지 기록 해둔다 )
Get
조회 성능 최적화 요소를 적용해 두었다
- 쿼리 튜닝
- 인덱스 설계
- Redis 조회 캐싱
DB 사용
Vuser : 100 명
쓰레드 : 3개
처리량 : 약 140,00 개
에러 약 140,000개
2분 돌다가 서버 다운 ;;;;;;
Chache 적용
Vuser : 200 명
쓰레드 : 20개
처리량 : 약 70,00 개
에러 : 0개
MTT : 0.7초
Vuser : 600 명
쓰레드 : 20개
처리량 : 약 119,00 개
에러 13,000개 10%
TPS : 371
MTT:1.3초
Post
Vuser : 300 명
쓰레드 : 30개
처리량 : 약 25000 개
에러 317개
MTT : 3초
TPS : 86
Peak : 112
Vuser : 200 명
쓰레드 : 20개
처리량 : 약 35000 개
에러 499개
MTT : 1.5초
이상 !
앱서버 MVP 출시 전 서버가 어느정도까지 버티는지 테스트 해보았다 !
오류모음
https://soobysu.tistory.com/200
728x90
'개-발 > Infra' 카테고리의 다른 글
[nGrinder] multipart-form 스크립트 작성하기 (1) | 2024.11.19 |
---|---|
[Infra] ngrinder 부하 테스트 도구 (1) | 2024.11.18 |
[Infra] Jmeter 부하 테스트 도구 (1) | 2024.11.18 |
[오류노트] Swagger 포트 바인딩 (with. Nginx) (0) | 2024.10.31 |
[AWS] swap 메모리 설정하기 (0) | 2024.10.21 |