TPM(Transactions Per Minute) 개념과 의미
TPM(Transactions Per Minute)은 1분 동안 서버가 처리하는 트랜잭션의 수를 의미합니다.
웹 서버, 애플리케이션 서버, 데이터베이스(DB)에서 트랜잭션 성능을 평가하는 핵심 지표로 사용됩니다.
✅ 서버 부하 테스트 및 성능 최적화에 필수적인 메트릭
✅ 웹 서버, API 서버, 데이터베이스 성능 모니터링에 활용
✅ TPS(Transactions Per Second)와 함께 사용 가능
📌 TPM vs QPS vs RPS 차이점
성능 지표의미사용 예시
TPM (Transactions Per Minute) | 1분당 트랜잭션 수 | 금융 시스템, 결제 서버, 데이터베이스 |
QPS (Queries Per Second) | 초당 데이터베이스 쿼리 수 | SQL DB, NoSQL, 검색 엔진 |
RPS (Requests Per Second) | 초당 HTTP 요청 수 | API 서버, 웹 애플리케이션 |
TPM이 서버 모니터링과 관련된 이유
🔹 트랜잭션 성능 평가 → 서버가 얼마나 많은 요청을 처리할 수 있는지 측정
🔹 DB 및 애플리케이션 부하 분석 → 성능 병목 지점 파악 가능
🔹 SLA(서비스 수준 계약) 관리 → 서비스 목표 유지 및 최적화
🔹 클라우드 서버(AWS, GCP) 성능 모니터링 → 부하 분산 및 확장성 고려
TPM을 측정하는 방법
1️⃣ APM(Application Performance Monitoring) 도구 사용
서버 및 애플리케이션 성능을 분석하는 도구를 사용하여 TPM을 모니터링합니다.
✅ New Relic → 애플리케이션 트랜잭션 성능 추적
✅ Datadog → 서버 및 API 요청 분석
✅ Prometheus + Grafana → 오픈소스 기반 실시간 TPM 모니터링
✅ AWS CloudWatch → AWS 기반 서버의 TPM 수집
2️⃣ 데이터베이스(DB) 트랜잭션 로그 분석
- MySQL, PostgreSQL
SHOW STATUS LIKE 'Com_%';
- Oracle
SELECT COUNT(*) FROM v$transaction;
- MongoDB
db.serverStatus().metrics.transactions;
3️⃣ 웹 서버 로그 분석
✅ NGINX / Apache 로그에서 트랜잭션 수 확인
✅ ELK Stack (Elasticsearch, Logstash, Kibana) 활용 가능
✅ AWS CloudTrail, Google Stackdriver, Azure Monitor 사용 가능
🛠 Python을 사용한 TPM 실시간 모니터링 예제 (Flask + Prometheus)
from flask import Flask
from prometheus_client import Counter, generate_latest
app = Flask(__name__)
# Prometheus Counter 설정 (TPM 측정)
tpm_counter = Counter('transactions_per_minute', 'Total transactions per minute')
@app.route('/transaction')
def process_transaction():
tpm_counter.inc() # 트랜잭션 카운트 증가
return "Transaction Processed"
@app.route('/metrics')
def metrics():
return generate_latest()
if __name__ == '__main__':
app.run(port=5000)
✅ Flask 웹 서버를 실행하여 트랜잭션을 측정하고, Prometheus & Grafana로 시각화 가능!
🔥 결론: TPM 모니터링이 중요한 이유
✔ 서버 및 애플리케이션 성능 최적화
✔ DB 및 API 서버의 트랜잭션 처리량 확인
✔ AWS, GCP, Azure 클라우드 서버 부하 테스트 가능
✔ Prometheus, Grafana, AWS CloudWatch로 실시간 모니터링 가능
TPM을 지속적으로 분석하면, 서버 성능 문제를 미리 감지하고, 최적의 성능을 유지할 수 있습니다! 🚀