본문 바로가기

728x90

성능 개선

(3)
대규모 트래픽 처리를 위한 클라우드 DB 활용 (삼성/쿠팡) ※ 본 내용은 AWS Summit 2023 내용을 정리한 글입니다. 1. 목적별 데이터베이스 현대 Application은 매우 복잡하다. 사용자가 수백만명이고 볼륨이 많이 필요하다. 이로 인해 1개의 DB 운영은 매우 어렵다. 여러 용도에 맞게 DB를 선택하는 게 중요하고, 자신의 시스템에 최적화된 DB를 선택해야 한다. 이를 Cloud Native를 통해 손쉽게 해결할 수 있다. 위의 그림처럼 AWS는 다양한 DB를 제공한다. 2. 삼성의 사례 Rich Communication Service. 삼성의 차세대 메시지 플랫폼에서 하루 5천만 건의 메시지를 처리해야 하는 상황. 모놀리식 아키텍처이고, 클러스터당 1,000,000명의 사용자가 있다. 각 사업자에 대해 10~20개의 클러스트가 있다. 클러스터가..
JPA 컬렉션 조회 최적화 JPA를 활용하여 병원 검색과 리뷰 검색을 구현해 봤다. 테이블 관계는 아래와 같다. where 절의 like를 사용하여 진료 과목, 병원 이름, 태그를 검색하게 했고, JMeter를 통해 성능 테스트를 했다. JMeter의 조건은 아래와 같다. Number of Threads (users) : Thread의 수(가상 사용자) Ramp-up period (seconds) : 요청 주기(초) Loop Count : 테스트를 반복하는 횟수 Infinite - 무한대로 호출 100명의 사용자가 1초에 3번씩 요청을 하게 설정했다. 1. 엔티티를 DTO로 변환 및 한계 돌파 컬렉션을 fetch join하면 페이징이 불가능하고, 일대다 조인이 발생하므로 데이터가 예측할 수 없을 정도로 증가한다. 또한 중복 데이터..
서버 성능 올리기 (초급편) 1. 서버 성능의 기본 지표 서버 성능의 기본 지표는 두 가지이다. 1)응답 시간과 2)처리량이다. 처리량은 시스템에 대한 성능을 평가며, 단위로는 주로 TPS (Transactions per Second)를 사용한다. 응답 시간은 대기 시간과 처리 시간을 합친 것이다. 2. 처리량 올리기 1) 서버 숫자 증가(쉬운 방법) 2) 쓰레드 풀 + DB 커넥션 풀 증가 => 동시 처리할 수 있는 개수가 증가한다. 그러나 위의 방식도 한계가 있다. DB에 대한 임계치가 넘어가면 서버가 먹통이 난다. 즉, (DB 쿼리 시간 증가 => 처리 시간 증가 => TPS 하락) 과정이 나타난다. TPS를 높이려면 기본적으로 처리 시간을 줄여야 한다. 3. 처리 시간 줄이기 처리 시간을 줄일라면 비중이 높은 대상을 줄여야 ..

728x90