-
Notifications
You must be signed in to change notification settings - Fork 2
성능테스트 환경 구축 #32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
성능 테스트 전반적 개념 학습 접기/펼치기[우아한테크] 10분 테크톡 성능 테스트
[엘리스 CTO가 알려주는 ‘서버 성능 측정 방법’](https://www.youtube.com/watch?v=HSNyJnobBws) 어느 서버가 더 성능이 좋은가
Latency : 사용자의 입장에서 응답에 걸리는 시간 테스트 시나리오10개의 커넥션 5초동안 연결
100개의 커넥션을 5초동안 연결
그렇다면 "우리 서버는 동시에 950명이 접속해도 안전합니다"라고 말 할 수 있는가?
이건 그저 "서버가 버틸 수 있을때까지 최대한 Request를 넣어보는 행위"
테스트 시나리오 개선"100명의 유저가 30초동안 Request를 하는데, 인당 1초에 1번씩 Request를 한다"
1초에 100개씩했을때 Latency가 3ms, 10배를했을때 Latency가 1s
어떻게 개선하는가?그래서 우리는 어떻게 할 수 있을까?
[우아콘] 서버 성능테스트, 클릭 한 번으로 끝내볼 수 있을까 |
어떤 성능테스트 도구를 사용할 것인가?기준
참고
K6를 사용한다
성능 (single k6 instance)
언제 성능테스트를 자동화를 할 것인가?성능 최적화 이후 "일정 성능 유지"를 위해 자동화한다
애플리케이션 환경 구성EKS Cluster를 환경에 따라 구분하지 않는다. 해당 프로젝트의 목적은 '성능테스트' 자체에 있기 때문에 PROD/DEV 환경등의 이중 구성이 필요하지 않다.
문제점
애플리케이션 초기화 문제동일한 환경에서 어떻게 여러번의 부하 테스트를 진행할것인가? 즉 어떻게 초기화할 것인가? 애플리케이션 리소스와 모니터링 환경 및 데이터는 그대로 유지. 그 외 Stateful 리소스의 Data 초기화
향후 제약사항
테스트 환경고려대상
결정
어떤 레포지토리에서(Infra/Backend) 테스트 스크립트를 작성할 것인가?향후 Git Actions 테스트 자동화를 위해서는 Backend를 사용한다
로컬에서 DB를 어떻게 초기화할 것인가?cleanup endpoint를 만든다면?
즉 자동화 스크립트를 구현한다 ticketing-backend/
load-test/
bastion.pem # 인프라개발자에게 전달받는다
run.sh
k6-scripts/
db-init/ # db init scripts... 실제 구현시 최대한 의존성을 제거하고, 자동화한다
어떻게 테스트 결과를 출력할 것인가?두가지 테스트 결과가 존재한다.
애플리케이션 리소스 정보는 어떻게 확인하는가?
K6테스트 결과는 어떻게 확인하는가?
Todo
|
Uh oh!
There was an error while loading. Please reload this page.
Description
해당 문서는 학습용 Document
실제 성능테스트 스크립트 작성은 f-lab-clone/ticketing-backend#83 에서 진행
1. Database를 초기화한다
2. K6를 통한 성능테스트를 진행한다
3. Grafana 대시보드를 통해 결과를 확인한다
To do
Test Checklist
결과 슬랙 전송The text was updated successfully, but these errors were encountered: