본문 바로가기

Log44

Postgres_인덱스 적용 후 성능이 개선되지 않는 문제 배경 대용량 트래픽 처리를 위한 node.js 기반 서버를 구축하는 프로젝트를 진행했습니다. 트래픽 처리가 가능한지 검증하기 위해 부하 테스트 툴인 nGrinder을 사용했습니다. 프로젝트를 진행하던 중 발생한 성능 문제를 인덱스로 해결하는 과정에 대한 글입니다. 인덱스를 사용하게 된 계기 신발 사이즈를 기반으로 고객의 입찰 데이터들을 검색하는 상세 조회(findById) API를 테스트하는 도중 응답속도와 처리량이 급격히 감소하는 현상이 발생했습니다. 이 쿼리는 특정 신발 사이즈(bidSize) 조건과 함께 입찰 생성 날짜(createdAt) 내림차순으로 필터링하고 있던 상황이었습니다. 이에 검색 성능을 개선하고자 신발 사이즈(bidSize)에 인덱스를 적용했으나 성능은 개선되지 않았습니다. 문제 원인.. 2023. 3. 13.
어플리케이션 시스템의 목표 트래픽 기준 설정하기 우리의 프로젝트의 목적은 가용성 높은 어플리케이션 시스템을 구축하기 위함이다. 이를 위해 목표가 필요한데, 우리가 생각할 것은 1) 어떤 트래픽 수준의 환경에서 돌아가는 시스템인가 그리고 2) 우리에게 주어진 리소스는 무엇인가라는 것이다. 목표 하고자 하는 트래픽 수준 : 우리의 서비스와 유사한 KREAM을 참고할 것 주어진 리소스 예산 : x만원 시간 : 6주 이번 게시글에서는 목표하고자 하는 트래픽 수준을 수치화하기 위해 국내 패션 플랫폼들의 트래픽 정보들을 참고해보자. 목표 트래픽 기준 설정하기 MAU / DAU 우선 국내 주요 패션 플랫폼들의 MAU를 확인해보자. MAU는 월간 활성 사용자(Monthly Acitivity User)의 약자로 한 달에 몇 명이나 이 서비스를 사용하는지를 나타내는 .. 2023. 3. 10.
exp018_DB 인덱스 적용에 따른 래플 비딩 데이터 상세 조회 Latency 변화 관찰 Background Information 다수의 유저들이 소장 가치가 높은 패션 아이템들을 래플 방식으로 구매할 수 있도록 도와주는 웹 어플리케이션입니다. 신뢰성있고 신속한 대응으로 만족스러운 유저 경험을 제공하는 '피라미드' 시스템 구축을 위한 실험 과정을 기록한 내용입니다. Framework : nest.js DB : AWS RDS postgres Title exp018_DB 인덱스 적용에 따른 래플 비딩 데이터 상세 조회 Latency 변화 관찰 Research Question 래플 비딩 데이터 상세 조회에 인덱싱을 적용하면 latency가 얼마나 개선될까? Summary bidSize = 270 조건 검색 쿼리의 성능 경우 인덱스 적용 시 API 요청 로직은 큰 변화가 없었다. 반면.. 2023. 3. 9.
exp017_nGrinder script 수정 후 VUser-게시글 성공률 상관관계 관찰 재실험(No ramp-up) Title exp017_nGrinder script 수정 후 VUser-게시글 성공률 상관관계 관찰 재실험 Research Question nGrinder 스크립트를 수정하여 에러로 인한 테스트 중지 문제를 해결했다. 스크립트 수정 이후 VUser 변화에 따른 게시글 생성 성공률은 어떨까? 추가로 netstat으로 상세 모니터링을 진행하면 어떤 인사이트를 얻을 수 있을까? Summary 현재 시스템은 VUser 600명이 동시 10건의 게시글 생성하는 수준까지는 안정적으로 처리중 하지만 600명이 넘어가는 순간 급격하게 증가해왔던 Latency 증가폭이 둔화되는 대신 게시글 생성 실패율이 급증 이는 시스템의 처리 한계를 넘어섰기에 요청 처리를 더 이상 수행하지 못하는 것으로 추측됨 따라서 VUser .. 2023. 3. 8.