본문 바로가기

Log/Experiment19

exp003_DB CPU 한계점 파악 실험 실험 개요 실험 제목 : exp003_DB CPU 한계점 파악 실험 실험 코드 : test-pyramid-20230224-002 관련 실험 : test-pyramid-20230224-001 실험 상황 : 부하 테스트 툴 nGrinder을 활용한 서버 부하 테스트 진행중 실험 목적 : partial selection 코드를 적용한 API에 15분 간 장기간 부하주는 상황에서의 성능 관측 결론 에이전트 2개로 Vuser 40으로 설정하여 러닝타임을 15분으로 테스트를 진행함 테스트 시작 3분 이후 DB CPU 사용률이 약 98% 수준에 도달했다 DB CPU 한계치에 도달한 이후에도 12분동안 지속된 것을 통해 최대 CPU 사용 환경에서의 DB의 지속 가능시간이 약 12분임을 알게됨 테스트 앞서 maxQuer.. 2023. 2. 27.
exp002_TypeOrm_partial Selection 사용 여부에 따른 성능 변화 관찰 실험 개요 실험명 : test-pyramid-20230224-001 관련 실험 : test-pyramid-20230223-002 실험 상황 : 부하 테스트 툴 nGrinder을 활용한 서버 부하 테스트 진행중 실험 목적 : TypeORM partial Selection 사용 여부에 따른 성능 변화 관찰 실험 결론 실험 조건 하, TypeOrm partial Selection 적용 시 그렇지 않은 쿼리보다 성능이 약 5배 정도 성능이 개선되었다 관계 참조하지 않는 단순 find()보다 partial Selection 적용한 find()가 성능이 조금 부족하지만, 관계하고 있는 데이터를 함께 가져온다는 점에서 유의미한 성능을 나타낸다고 판단됨 쿼리 성능을 개선하니 웹서버 CPU 사용률과 DB CPU 사용률 .. 2023. 2. 24.
exp001_TypeOrm_관계 참조 여부에 따른 쿼리 성능 비교 실험 Summary 관계 옵션을 추가하면 당연하지만 성능이 느려진다. DB CPU 사용률이 높아지는 동시에 Throughput이 감소했다. 반면 CPU 사용률은 떨어졌다. DB 쪽에 병목 현상이 있는 것으로 추정된다. 테스트 1 : 현재 상황 파악 Goal : 현재 상황 파악 test-number : test-20230223-001 nest.js 어플리케이션이 담긴 EC2는 t2.micro로 맞췄고, controller, agent는 t2.large와 t2.medium으로 해주었다. ngrinder controller : t2.large ngrinder agent : t2.medium nestjs application : t2.micro DB : postgres db.t3.micro controller, ag.. 2023. 2. 24.