웹 애플리케이션의 성능 분석 및 개선 방향을 알아보자

narisarit·2025년 3월 24일
0

성능 평가 기준

Throughput : 처리량

같은 시간 동안 더 많은 작업을 처리한다.
단위 시간 동안 처리할 수 있는 데이터나 작업의 양
일반적으로 단위 시간으로 초를, 처리할 작업으로 Transaction을 많이 사용하며 TPS(Transaction Per Second)라고 표현한다.

Transaction은 DB의 트랜잭션이 될 수도 있고 일반적으로 ‘특정 개체에 의한 atomic 한 액션’ 이라고 생각하면 된다.

  • CPU : IPS(Instruction Per Second)
  • Network: BPS(Byte Per Second)
  • Storage: IOPS(Input/Output Per Second)
  • Web Service: RPS(Request Per Second)

웹 서비스에서는 성능 측정을 위한 처리량의 단위로 ‘1초당 처리할 수 있는 HTTP request의 수(RPS)’를 많이 사용한다.

Latency

하나의 작업을 빠르게 처리한다.
서버의 관점에서 보면 클라이언트로부터 받은 요청을 처리하고 응답을 전송할 때까지 걸린 시간을 의미한다.

  • Latency는 작을수록 성능이 좋다.
  • 한 서비스의 전체 Latency는 각 부분 시스템의 Latency를 더한 것과 같다.



시스템 성능 확인 및 개선

우리가 웹 애플리케이션을 구성한다고 생각하면 3가지 부분 시스템으로 나뉜다고 보면 된다.

  • 웹 서버 : 5000TPS, 10ms (Web Server)
  • 애플리케이션 서버 : 500TPS, 200ms (Web Application Server)
  • 데이터베이스 : 700TPS, 50ms

-> 전체 시스템 : 5000TPS(웹서버), 260ms(총 합)


그럼, 우리가 아는 지식으로 해결할 수 있는 부분을 생각해보자.

Throughput의 병목이 되는 지점인 WAS를 scale out 할 수 있다.

WAS의 서비스 로직 코드 최적화, DB 쿼리 개선하여 Latency를 줄일 수 있다.

  • 성능 평가란 성능 요구사항을 충족하고 있는지 확인하고 개선할 수 있는 부분을 개선하는 것이다.
  • 성능을 평가하는 기준으로는 ThroughputLatency가 있다.
  • 부분 시스템의 Throughput과 Latency를 개선함으로써 전체 시스템의 성능도 향상시킬 수 있다.
  • Throughput을 개선한다는 것은 시간 당 처리량을 향상시킨다는 의미이다.
  • Latency를 개선한다는 것은 요청 당 응답 속도를 향상시킨다는 의미이다.

참고 자료: https://blog.lemonbase.team/%EC%84%9C%EB%B9%84%EC%8A%A4%EC%9D%98-%EC%84%B1%EB%8A%A5-%EB%B6%84%EC%84%9D%ED%95%98%EA%B8%B0-1%ED%8E%B8-%EC%84%B1%EB%8A%A5-%ED%8F%89%EA%B0%80%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-f4a9930b70a3

profile
식물축구코딩롤

0개의 댓글