Replies: 15 comments 9 replies
-
목표 TPS를 향한 여정
큰 갈래로는
아래와 같은 스크립트 작성
export default function () {
let reqCode = 리뷰_그룹_만들기();
sleep(1);
for (let i = 0; i < 9; i++) {
질문지_보기(reqCode);
sleep(10);
리뷰_작성하기(reqCode);
sleep(1);
}
let jsessionId = 세션_획득하기(reqCode, "1234");
리뷰_목록_조회하기(reqCode, jsessionId);
sleep(1);
for (let i = 1; i <= 5; i++) {
리뷰_모아보기(reqCode, jsessionId, i);
sleep(1);
}
} |
Beta Was this translation helpful? Give feedback.
-
DB Pending이 190까지 솟아서 DB Connection Pool의 Max size를 10 -> 30으로 조정 DB Connection Acquire 시간이 1초까지 올랐음 얘가 해답은 아닌 듯함 |
Beta Was this translation helpful? Give feedback.
-
같은 조건인데도 처음에는 응답시간이 길다, JVM Warm up 문제인가? |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
TPS를 무작정 올리는 게 아니라, 현재 시나리오에서 뽑을 수 있도록 최대한 튜닝한다 |
Beta Was this translation helpful? Give feedback.
-
테스트 환경 정보
테스트 DB는 RDS의 메모리(8GB)와 동일하게 하기 위해 large 사용 테스트 방식
|
Beta Was this translation helpful? Give feedback.
-
CP 1, VU 3001차, Warm-up
2차
3차
CP 2, VU 3001차
2차
3차
CP 3, VU 3001차
2차
3차
CP 4, VU 3001차
2차
3차
CP 5, VU 3001차
2차
3차
CP 10, VU 3001차 (Warm up 이후)
|
Beta Was this translation helpful? Give feedback.
-
Tomcat Thread Pool
TP 10001차
2차
|
Beta Was this translation helpful? Give feedback.
-
VU 올리면 TPS 올라가기는 하는데, 각각의 요청에 대해서 3초씩 걸리는 건 문제긴 함. 결국 TPS가 중요한 게 아니라, 내부적으로 얼마나 대기하는지가 중요함 |
Beta Was this translation helpful? Give feedback.
-
바보같은 우리... 인덱스도 안 달았음 VU 300 굿
VU 400도 굿
VU 500도 버팁니다
|
Beta Was this translation helpful? Give feedback.
-
템플릿 캐싱 이후 VU 500
VU 700 와
|
Beta Was this translation helpful? Give feedback.
-
Repository단에서 Question과 관련된 것들을 캐싱하니 900까지도 버틴다
|
Beta Was this translation helpful? Give feedback.
-
<마무리> VU 300
VU 500
vu 700
|
Beta Was this translation helpful? Give feedback.
-
Thread만 두고 보기 max-thread 20:
max-thread 50:
max-thread 100:
max-threads 200:
max-threads 300:
|
Beta Was this translation helpful? Give feedback.
-
인스턴스 한 대 기준으로 핵심 기능에 대한 목표 TPS를 설정하고 달성하기 위한 방안을 수립합니다.
목표 TPS에 대한 기준
목표 TPS는 인스턴스 한 대를 기준으로 합니다. 한 대의 인스턴스에서 낼 수 있는 성능을 측정하고 전체 서버에서 필요로 하는 성능이나 추가적인 성능 개선이 필요할 때, 수평/수직 확장에 대한 기준을 세울 수 있습니다.
테스트 범위
테스트 단계
성능 테스트 시나리오
시나리오 항목
리뷰미 서비스의 주요 사용자 시나리오를 다음과 같이 정의합니다.
시나리오 설정
자신이 받은 리뷰를 보며 기억하고 싶은 부분에 하이라이트 한다.(answerId 제공 어려움)테스트 스크립트
설정된 vu 수만큼 30초간 생성 후 각 유저들은 다음과 같은 작업을 진행합니다.
리뷰 하이라이트 30회 -> api 30회테스트 목표
최대 동시 허용 사용자를 찾은 후, Latency를 낮춰 TPS를 높이는 것을 목표로 합니다.
테스트 결과
코멘트 참고
Beta Was this translation helpful? Give feedback.
All reactions