방갑숨당 👋
안녕하세여! 직장인이 된 야미입니다..!ㅋㅋㅋㅋ
아직 직장인이라고 하기엔,, 삐약거리며 회사만 돌아다니는 신입이지만,,,
그래도 요즘 많이 게을러진 것 같아서 다시 슬슬 공부를 하며 블로그를 쓰려고 합니다..!
이전에는 기록을 위해 공부를 했다면, 이제는 정말 공부를 하고 기록을 하는 느낌으로..
얼른 회사에 적응해서 저녁에 공부를 하는 습관을 들여보려고 합니당!
아무튼..!
🐣 TPS..요..?
최근에 부서 배치를 받고, 처음으로 팀 내 회의에 참석한 일이 있었습니다
물론 아무고토 모르고 그저 참관?의 느낌으로 들어간 회의라 못알아 듣는 것이 당연하지만, 뭔가 팀 내 기술 문제 외에도 이해하지 못하는 키워드가 많았습니다😥
그 중 하나가 TPS 였습니다,,
TPS,,, 어디선가 자주 듣던 말인데,,, 뭔지는 모르는,,,
항상 이 키워드를 들을 때마다 성능 측정 지표겠거니~ 만 하고 정확히 어떤 의미인지, 어떤 상황에서 쓰이는 건지에 대해서는 고민을 하지 않고 얼레벌레 넘어갔네용,,
그래서! 오늘! 바로 지금!
공부를 해보려 합니다..!
난 이제 찐 개발자니까..!🐣(삐약)
🧐 TPS 란?
TPS는 Transaction Per Second의 약자로, 1 초당 처리할 수 있는 트랜잭션을 의미한다
TPS는 시스템의 성능 측정의 지표가 된다
🖋️ TPS 계산
실제 계산하는 방식은 일정 기간동안 실행된 트랜잭션의 개수를 구하고 다시 1초 구간에 대한 값으로 변경한다
TPS의 계산 예시로 위의 2번째 행을 보자
- 2번째 행에서는 5개의 트랜잭션이 실행 완료되었다
- 이런 경우 TPS를 구하는 방법은 5 transaction / 5 sec 이므로 결과값은 1 TPS가 된다
위처럼 구간 내의 트랜잭션 수(transaction) / 수집 구간 초(sec) 로 TPS를 계산할 수 있다
💹 Saturation Point와 TPS
Saturation Point : 요청이 증가해도 TPS가 특정 값으로 수렴하는 것
서비스 시간이 일정하기 때문에 초반에는 요청이 증가할수록 어느 수준까지는 처리량이 선형적으로 증가한다
이후 서비스에 사용자가 지속적으로 늘어나면 어느 순간부터 TPS가 더이상 증가하지 않는 상황이 발생하는데, 이 지점을 Saturation Point 라고 하고 이 때의 동시 사용자 수를 최대 허용 동시 사용자라고 표현한다
제대로 튜닝이 되지 않은 서비스는 Saturation Point를 지나면 오히려 TPS가 떨어지기도 한다
(TPS가 수렴하고 떨어지지 않아야 정상적이며, 떨어진다면 개선해야 한다!)
위 그림은 서비스의 이상적인 상황으로, 위 그림의 서비스는 사용자가 300명이 넘어가면 TPS가 고정되면서 상대적으로 트랜잭션의 응답시간이 길어질 것을 예상할 수 있다
→ 위의 서비스에서 동시 접속 사용자가 300명이 넘어가면 TPS는 더이상 올라가지 않아 서비스의 정체 시간이 증가한다
→ 만약 300명의 요청 사항에 대한 TPS가 50이라면 해당 요청사항을 다 처리하는데 약 6초가 소요된다고 예상할 수 있다
이처럼 TPS와 동시접속자를 미리 선정해봄으로써 서비스의 성능을 예상하여 측정할 수 있다
성능 테스트의 한 형태인 Critical Performance Test (임계 성능 테스트)의 경우, Saturation point를 찾아내는 것을 목표로 한다
이를 통해 해당 시스템의 한계 성능을 확인하여 최대 TPS와 그 때의 응답시간과 자원 사용률, 최대 허용 동시 사용자 등을 알 수 있다!
[참고]
https://brunch.co.kr/@leedongins/27
https://performance.tistory.com/4
'야미스터디' 카테고리의 다른 글
[Youtube] kafka 조금 아는 척하기 3편 - 컨슈머 (0) | 2024.09.16 |
---|---|
MAU? 그게 몬디? (0) | 2023.06.07 |
댓글