TPS : Transactions Per Second
초당 처리되는 트랜잭션의 수
TPS에서의 트랜잭션?
Transaction 은 특정 작업이나 일련의 작업이 시스템에서 처리된 작업 '단위' 를 의미한다.
하나의 트랜잭션은 시스템이 처리해야 하는 하나의 완전한 작업 흐름을 의미하며 다양한 요청-응답 주기를 포함할 수 있다. 예시로 다음과 같은 작업을 포함할 수 있다.
- HTTP 요청-응답 : Web App에서는 클라이언트가 서버에 요청을 보내고 응답을 받는 작업
- 예 : 사용자 로그인, 목록 조회, 데이터 제출 등의 요청
- 데이터베이스 작업 : DB에서 실행되는 여러 작업이 하나의 트랜잭션으로 간주될 수 있다
- 예 : 하나의 INSERT작업, SELECT작업 또는 여러 쿼리 묶어서 처리하는 작업
- API 호출 : 하나의 API호출이 트랜잭션으로 간주될 수 있다
- 비즈니스 로직 : 애플리케이션에서 수행되는 특정 비즈니스 로직의 완료
- 예 : 결제 처리, 주문 생성
TPS가 높을수록 짧은 시간에 처리량이 많다.
100 TPS는 1초동안 100개의 트랜잭션이 처리되었음 을 의미한다.
트랜잭션의 구성 요소
하나의 트랜잭션이 성공적으로 완료되기 위해서는 다음과 같은 구성 요소들이 존재한다.
- 시작: 트랜잭션이 시작되어 시스템에서 작업을 처리할 준비를 함
- 처리: 여러 작업이 시스템에서 처리됨. (데이터베이스 조회, API 호출, 계산 등)
- 종료: 트랜잭션이 정상적으로 처리되면 커밋(성공)되거나, 문제가 발생하면 롤백(실패)
예시
웹 애플리케이션에서 사용자 로그인을 처리하는 트랜잭션 일 경우, 다음과 같은 작업 흐름을 갖는다
- 클라이언트에서 로그인 요청을 보낸다(POST 요청).
- 서버에서 해당 요청을 받아 사용자의 자격 증명을 데이터베이스에서 확인한다.
- 자격 증명이 확인되면 세션이 생성되고, 로그인 성공 메시지가 반환된다.
이 흐름이 하나의 트랜잭션으로 간주되며, TPS 측정에서는 이 같은 트랜잭션이 초당 몇 번 발생했는지를 평가한다.
'트러블슈팅' 카테고리의 다른 글
ngrinder로 부하테스트 중 자바 버전이 안맞는다 (1) | 2024.10.22 |
---|---|
ec2 로그 실시간 확인하기 (0) | 2024.10.13 |
local variable ~~~ is reundant. (0) | 2024.04.11 |
dto 의 hashmap 필드 nullpointexception 에러 (0) | 2024.04.08 |