본문 바로가기
관리자

Programming-[Backend]/Performance, Monitoring

(3)
Count, 동시성 제어 관리(Lock, Redis, Kafka): 선착순 이벤트 시스템 인프런의 실습으로 배우는 선착순 이벤트 시스템 강의를 듣고나서 정리하는 내용이다. 동시에 많은 사용자가 몰려서 서버에 요청을 보냈을 때, 쿠폰 등 개수에 대한 정합성을 어떻게 확보할 것인지 알아본다. 그리고 DB에 부하가 되지 않게 할려면 어떻게 해야하는지 알아본다. 강의에서는 선착순으로 쿠폰을 발급하는 이벤트를 개최하는 상황을 예시로 든다. 요구사항은 아래와 같다.1. 쿠폰은 선착순 100명에게만 발행된다.2. 순간적으로 몰리는 트래픽을 견딜 수 있어야한다. Lock1번 요구사항을 달성하기 위해 가장 간단하게 적용할 수 있는 방법은 Lock이다. 아무런 추가 인프라 없이 JPA의 @Lock 어노테이션을 이용하여 Pessimistic Lock을 걸면 된다. 이 방법은 한 스레드가 접속하여 DB를 업데이..
성능 테스트: K6, influxDB, grafana, RPS, 지연율과 DB Connection pool 지난 jmeter와 chaos monkey를 이용한 성능 테스트에 이은 글이다. 이번에는 K6, influxDB, grafana를 통해 성능 테스트를 하는 글이다. 지난글:https://whitepro.tistory.com/1065 성능 테스트: jmeter, @Profile, chaos monkey배경로컬에서 잘 만든 애플리케이션을 클라우드 환경 등에 배포하기 위해서는 컴퓨팅 자원을 얼마나 쓸 것인지 결정하는 것이 필요하다. 실제 애플리케이션의 요구사항에 따른 적절한 자원 임whitepro.tistory.com    1. K6개요 및 설치ref.) https://velog.io/@prismy/%EC%84%B1%EB%8A%A5-%ED%85%8C%EC%8A%A4%ED%8A%B8-k6grafanainflux..
성능 테스트: jmeter, @Profile, chaos monkey 배경로컬에서 잘 만든 애플리케이션을 클라우드 환경 등에 배포하기 위해서는 컴퓨팅 자원을 얼마나 쓸 것인지 결정하는 것이 필요하다. 실제 애플리케이션의 요구사항에 따른 적절한 자원 임계치를 설정하고 그에 맞게 설정해야 불필요한 자원 낭비를 막을 수 있다. jmeter애플리케이션을 테스트하기 위한 대상 API를 선정했다면, 해당 API 쪽으로 많은 요청을 한 번에 쏴볼 수 있는 도구가 필요한데, 이를 가능하게 해주는 것이 jmeter이다. 아래 jmeter 홈페이지에서 실행파일이 포함된 바이너리 파일을 다운로드 받고, 압축을 푼 뒤, 내부의 /bin/jmeter 파일을 실행하면된다.https://jmeter.apache.org/download_jmeter.cgi 아래 그림처럼 Thread Group -> H..