본문 바로가기

트러블슈팅

TPS와 트랜잭션

TPS : Transactions Per Second 

초당 처리되는 트랜잭션의 수

 

TPS에서의 트랜잭션? 

Transaction 은 특정 작업이나 일련의 작업이 시스템에서 처리된 작업 '단위' 를 의미한다.

하나의 트랜잭션은 시스템이 처리해야 하는 하나의 완전한 작업 흐름을 의미하며 다양한 요청-응답 주기를 포함할 수 있다. 예시로 다음과 같은 작업을 포함할 수 있다.

  • HTTP 요청-응답 : Web App에서는 클라이언트가 서버에 요청을 보내고 응답을 받는 작업
    • 예 : 사용자 로그인, 목록 조회, 데이터 제출 등의 요청
  • 데이터베이스 작업 : DB에서 실행되는 여러 작업이 하나의 트랜잭션으로 간주될 수 있다
    • 예 : 하나의 INSERT작업, SELECT작업 또는 여러 쿼리 묶어서 처리하는 작업
  • API 호출 : 하나의 API호출이 트랜잭션으로 간주될 수 있다
  • 비즈니스 로직 : 애플리케이션에서 수행되는 특정 비즈니스 로직의 완료
    • 예 : 결제 처리, 주문 생성

 

TPS가 높을수록 짧은 시간에 처리량이 많다.

100 TPS는 1초동안 100개의 트랜잭션이 처리되었음 을 의미한다.

  1.  

 

트랜잭션의 구성 요소

하나의 트랜잭션이 성공적으로 완료되기 위해서는 다음과 같은 구성 요소들이 존재한다.

  1. 시작: 트랜잭션이 시작되어 시스템에서 작업을 처리할 준비를 함
  2. 처리: 여러 작업이 시스템에서 처리됨. (데이터베이스 조회, API 호출, 계산 등)
  3. 종료: 트랜잭션이 정상적으로 처리되면 커밋(성공)되거나, 문제가 발생하면 롤백(실패)

예시

웹 애플리케이션에서 사용자 로그인을 처리하는 트랜잭션 일 경우, 다음과 같은 작업 흐름을 갖는다

  1. 클라이언트에서 로그인 요청을 보낸다(POST 요청).
  2. 서버에서 해당 요청을 받아 사용자의 자격 증명을 데이터베이스에서 확인한다.
  3. 자격 증명이 확인되면 세션이 생성되고, 로그인 성공 메시지가 반환된다.

이 흐름이 하나의 트랜잭션으로 간주되며, TPS 측정에서는 이 같은 트랜잭션이 초당 몇 번 발생했는지를 평가한다.