Performanceintermediate검토 2026.08

Latency, TPS와 RPS 측정

측정 경계와 성공 기준을 명시해 응답 시간과 처리량을 올바르게 해석한다.

#latency#TPS#RPS#Little's Law

Overview

Latency와 Throughput은 측정 경계를 적지 않으면 비교할 수 없다. API RPS, DB TPS, Kafka Consume Rate, SMTP Success TPS는 서로 다른 일을 센다. 특히 Attempt가 늘어도 성공이 늘지 않으면 성능 개선이 아니다.

핵심 용어

지표정의
Latency한 작업의 시작부터 완료까지 걸린 시간
RPS초당 Request 수. 시도/완료/성공 중 무엇인지 명시
TPS초당 Business Transaction 또는 DB Commit 수
Concurrency동시에 진행 중인 작업 수
Service TimeQueue 대기를 제외하고 실제 처리한 시간
Response TimeQueue·Network를 포함해 Client가 느낀 시간

왜 필요한가

한 시스템의 “50 TPS”가 발송 시도인지 실제 성공인지 모르면 Capacity 판단을 잘못한다. Client p99가 긴데 Server 처리 시간은 짧다면 Network나 Queue가 병목일 수 있다. 같은 단위와 Window를 맞춰야 원인과 결과를 연결할 수 있다.

핵심 원리와 내부 동작

Little's Law의 안정 상태 근사 L = λW는 동시 진행 작업 수가 도착률×평균 체류시간과 연결됨을 보여준다. 100 RPS에 평균 0.2초면 약 20개가 동시에 진행된다. Timeout·Retry가 생기면 Attempted RPS와 Unique Business 성공률을 별도로 센다.

Example

휴머스온 대량발송 기록처럼 Attempt TPS 96인데 Success TPS가 약 48이고 실패가 절반이면 “2배 빨라졌다”가 아니다. 외부 SMTP 제한에 먼저 막혔다는 가설을 세우고 Producer 유입, Consumer Lag, Buffer, Worker, 성공률을 같은 Timeline으로 본다.

attempted_rps = 전체 시도 / 시간
completed_rps = 응답 완료 / 시간
success_rps   = 비즈니스 성공 / 시간
goodput       = SLO 안에서 완료된 유효 작업 / 시간

실무에서 발생하는 문제와 Trade-off

평균은 Tail을 숨기고, 짧은 Window 최대치는 Noise에 민감하다. Batch TPS는 Batch 크기에 따라 달라진다. Retry를 새 성공처럼 세면 처리량이 부풀려진다. Async API 응답 속도만 재고 실제 Queue 완료를 빼면 End-to-end 성능을 놓친다.

흔한 오해

  • TPS와 RPS는 언제나 교환 가능한 말이 아니다.
  • 낮은 Server Time이 낮은 Client Latency를 보장하지 않는다.
  • 처리량 증가가 오류와 Queue 증가를 동반하면 Capacity 개선이 아니다.
  • 평균 Latency만으로 사용자의 느린 경험을 설명할 수 없다.

Production Considerations

Metric 이름에 Boundary, Outcome, Unit을 넣는다. Client/Ingress/App/Queue/DB/Dependency 시간을 Trace로 분해하고 동일 Timestamp를 사용한다. Timeout과 실패 요청도 Histogram에 포함하며, Success Goodput과 Backlog 회복 시간을 함께 보고한다.

다른 사람에게 설명한다면

30초: “RPS는 요청 수, TPS는 정의한 Transaction 수이고 반드시 시도·완료·성공 경계를 적어야 합니다. Latency도 Client 전체 시간과 Server 처리 시간을 구분해야 하며, 오류를 제외한 Goodput과 p99를 함께 봅니다.”

2분: Little's Law로 RPS·Latency·Concurrency를 연결한 뒤 Attempt TPS와 Success TPS가 다른 실제 발송 사례, Queue 포함 End-to-end 측정을 설명한다.

Interview Questions

  1. TPS와 RPS는 언제 다른가?
  2. Attempt TPS와 Success TPS를 왜 나누는가?
  3. Little's Law를 Capacity에 어떻게 쓰는가?
  4. Async 작업의 Latency 종료점은 어디인가?

부하 테스트, Percentile 측정 오류, 병목 분석로 이어간다.

SOURCE REFERENCES

이 문서의 근거

본문은 Dev Atlas 안에서 완결되며, 검증이 필요할 때만 원문을 확인할 수 있습니다.

원문 출처 보기 2