Spring Boot 서비스 환경 스트레스 테스트 3 [Spring/Java]
·
Spring
지금까지 진행된 내용은 JVM 환경을 모니터링하고 DB 커넥션을 빠르게 되돌려 줄 수 있게 쿼리 최적화와, 트랜잭션의 동작, QueryHints 어노테이션, DB의 접근하는 로직을 최소화할 수 있도록 구성했다.이제 스트레스 테스트를 실제로 진행해야 한다.1. 스트레스 테스트 with K6K6는 그라파나 Lab에서 개발된 오픈소스로 다른 스트레스 테스트 툴에 비해서 들어가는 리소스가 적다. 또한 Go언어로 만들어져 빠르고 실제 테스트 스크립트 작성은 Js로 구성할 수 있다.https://kiru-dev-study.tistory.com/26 Spring Boot 프로파일링 및 Stress Test [Spring]현재 진행하고 있는 프로젝트의 대한 최적화를 진행하기 위해 다음과 같은 기술 스택을 사용했고 어떻..
Spring Boot 서비스 환경 스트레스 테스트 2 [Spring/Java]
·
Spring
https://kiru-dev-study.tistory.com/27 Spring Boot 서비스 환경 스트레스 테스트 [Spring/Java]1. 구성하게 된 이유스타트업 프로젝트를 2주안에 서버 구축이 완료되어어야 한다는 소리에 다급하게 프로젝트를 시작하고 인프라 구축, API 개발까지 완료를 한 상황에서 물론 스스로 응답에kiru-dev-study.tistory.com1편에 이어서 어떻게 개선했는지 확인해 보도록 하겠다. 스트레스 테스트에서 가장 중요한 점은 어디서 병목이 생기는지, 왜 병목이 생기는지에 대한 부분이다.1. 병목 지점 - DB실제로 가장 큰 병목 지점은 DB/IO의 대한 부분이다. 왜 그런가 하면 DB의 구조를 생각하면 좋은데 DB는 디스크에 데이터가 저장되게 된다. 즉 DB를 조회한..
Spring Boot 서비스 환경 스트레스 테스트 [Spring/Java]
·
Spring
1. 구성하게 된 이유스타트업 프로젝트를 2주안에 서버 구축이 완료되어어야 한다는 소리에 다급하게 프로젝트를 시작하고 인프라 구축, API 개발까지 완료를 한 상황에서 물론 스스로 응답에 관련한 테스트는 진행했지만 내가 만든 서비스의 수용량, 즉 얼마나 많은 유저들이 접속해서 유지할수 있는지 파악이 되지 않았다. 그리고 만든 서비스는 MSA 구조로 나뉘어져 있는 구조였기 때문에 각 컴포넌트 끼리 통신을 주고 받는 경우가 많아 하나의 요청도 분산되어있는 서비스에서 추적이 가능해야 했다. 따라서 스트레스 테스트 과정중 Spring Boot의 Observability가 필요하다고 생각했고 그에 따라 구성해본 경험을 작성해보려고 한다. 2. 서비스 환경 버젼(2025.01.04 기준 최신 latest 이미지만 ..
Spring Boot 프로파일링 및 Stress Test [Spring]
·
Spring
현재 진행하고 있는 프로젝트의 대한 최적화를 진행하기 위해 다음과 같은 기술 스택을 사용했고 어떻게 진행했는지, 어떤 과정으로 나아갔는지 작성해보도록 하겠다.Spring Boot 3.3.2Java 21Docker각 서비스 환경 구성Grafana API 스트레스 테스트, Spring Boot , CPU 메모리등 리소스 시각화InfluxDBAPI 스트레스 결과용 DBK6스트레스 테스트 툴로 설정 : 리소스를 적게 잡아 먹어 같은 JVM을 사용하는 JMeter및 NGrinder보다 가벼운 장점Prometheus각 서비스 컴포넌트 데이터 수집지난 글에서 말했다시피 다음과 같이 코드레벨에서 멀티모듈로 코드를 작성했고 아키텍쳐는 다음과 같고 Docker에 할당된 리소스는 다음과 같이 구성했다.CPU: 8Memory..