Throughput(처리량)
시간당 처리량을 의미한다. 이 처리량이라는 것이 사실 추상적인 의미이므로 구체적인 수치를 의미할 때는 보통 TPS(Transaction per secons)나 RPS(Request per seconds) 등으로 이야기한다. 처리량이 클수록 더 좋은 성능을 의미한다.
TPS
여기서 Transaction은 DB 트랜잭션 뿐 만을 의미하는 것이 아니라 Business의 한 사이클을 트랜잭션이라 의미한다.
유저 수에 따라 TPS는 지속해서 증가하다가 더 이상 증가하지 않고 유지되는 시점을 Saturation Point(포화 지점)라고 한다. 만약 이 지점을 지난후에 TPS가 떨어지게 된다면 튜닝이 필요한 시스템을 의미하게 된다. 포화지점은 '초당 처리할 수 있는 Transaction의 수가 한계에 도달했고 그때부터 사용자가 증가하면 Latency가 증가한다는 것'을 의미하므로 포화지점이 해당 서버가 감당할 수 있는 한계 지점을 의미한다.
Latency(지연 시간)
지연시간은 클라이언트로 요청을 받고 응답을 하기까지의 전체적인 시간으로 낮을수록 좋다. 클라이언트를 누구로 설정하냐에 따라 아래와 같이 여러 세부항목들이 있다.
- 실제 유저를 클라이언트로 생각하면 유저가 웹 시스템에서 특정 요청을 하고 이에 대한 응답이 화면에 보이기까지의 시간을 의미한다.
- 웹 브라우저와 같은 클라이언트 프로세스를 클라이언트로 생각하면 백엔드 프로세스 입장에서 요청을 받고 응답을 주기까지의 시간을 의미하게 된다.
- 백엔드 프로세스를 클라이언트로, DBMS를 서버로 생각하면 DBMS가 요청을 받고 응답하기까지의 시간을 의미한다.
Concurrency(최대 동시 사용자)
동시에 시스템과 상호 작용하는 사용자의 최대 수를 의미한다. 시스템이 얼마나 많은 동시 요청을 처리할 수 있는지를 보여준다.
에러율(Error Rate)
시스템에서 발생한 에러의 비율을 의미한다. 낮은 에러율은 시스템의 안정성을 나타내며, 높은 에러율은 잠재적인 문제를 나타낼 수 있다.
'개발일기' 카테고리의 다른 글
[개발일기] HTTP method GET 조회 vs POST 조회 (0) | 2024.08.23 |
---|---|
성능 테스트의 목적 (0) | 2023.12.13 |
[Spring, Java] 외부 API 호출 (1) | 2023.11.15 |
ssafy 신한 해커톤 지원 (0) | 2023.10.12 |
댓글