성능 측정을 목적으로 Vusers을 10이상으로 늘려 테스트를 하였더니 Read timed out 에러가 발생하였습니다. 이번 글에서는 오류를 어떻게 해결하였는지 기록하였습니다.
jenkins의 pipeline 기능을 사용하면 배포 프로세스의 관리가 편하고, 어디서 오류가 생긴 것인지 쉽게 발견 가능합니다. Springboot 프로젝트를 빌드하여 배포하는 과정을 pipeline으로 구성해보고자 합니다.
프로젝트가 커질수록 API 문서의 관리가 어렵고 귀찮아지기 때문에 API 문서화 기능을 제공하는 Swagger UI라는 툴을 사용해보았습니다.
Redis캐시와 스케일아웃으로 대용량 서버 프로젝트의 성능을 최적화한 결과를 nGrinder와 pinpoint 로 확인해보았습니다.
nGrinder와 pinpoint를 사용하여 테스트한 결과를 통해 병목 원인을 분석하고 성능 개선 가능한 방법이 무엇인지 찾아보았습니다.
실제로 트래픽을 받았을 때 성능이 어느정도까지 도달할 수 있는지 nGrinder을 사용하여 측정해보았습니다. 이 글은 nGrinder controller/agent의 설치 과정과 Groovy Script를 작성해 테스트를 실행한 결과를 담고 있습니다.
성능 테스트를 진행하기 전, 좀 더 유의미한 테스트를 진행하기 위한 방법으로 가짜 데이터인 `더미테이터`를 DB에 넣어보았습니다.
프로젝트의 규모가 커질수록 코드 검증과 배포를 자동화해주는 CD가 빛을 발합니다. 특히 스케일 아웃으로 서버 성능을 높일 예정이었던 프로젝트에 CD구축이 필요하다 생각하였고 이 과정을 기록해보았습니다.
프로젝트의 규모가 클수록 코드 작성부터 통합까지의 단계를 자동화해주는 CI의 필요가 커집니다. CI툴로는 Jenkins를 이용하였고, jenkins에 접속하여 설정하는 과정을 정리하였습니다
In-memory DB인 Redis와 Memchaced중에서 세션 저장소로 어떤 것이 적합할지 비교해 보았습니다.
스케일 아웃으로 서버의 저장소가 여러 대로 분산되면서 로드밸런싱을 통해 부하를 분산 처리해야 하는데, 이 때 세션 불일치 문제가 발생합니다. 이를 해결하는 방법에 대하여 정리해 보았습니다.