Test ‐ 병목 지점(Bottleneck Point) - thought-corner/backend-roadmap GitHub Wiki

병목 지점이란?

  • 병목 지점이란, 전체 시스템에서 특정 자원(CPU, 메모리 등)이 한계에 도달해 성능이 저하되는 구간을 의미한다.
  • 시스템 성능을 개선하려면 "병목 지점"을 찾아 개선해야 한다.

❗ 부하 테스트 목표 설정하기

  • 목표 TPS : 2000TPS
  • 평균 Latency : 800ms

❗ 병목 지점 파악 후 성능 개선하기

  • 목표로 설정한 Throughput, Latency를 달성하기 위해 기존 시스템 성능을 개선해야 할 수도 있다.
  • 성능 개선을 하려면 가장 먼저 병목 지점을 파악해야 한다.

❗ 적절한 부하 테스트 시간을 산정

  • 1분 간격으로 기록되는 모니터링 도구를 가지고 정확하게 성능을 측정하려면 최소 5분간의 부하 테스트는 진행해야 한다.
  • 그래야 일관된 결과값을 얻을 수 있다.

부하 테스트를 위한 인프라 아키텍처 구성하기

부하 테스트 시 주의점

  • 적절한 부하 테스트 시간 : 1분 간격으로 기록되는 모니터링 도구를 가지고 정확하게 성능을 측정하려면 최소 5분간의 부하 테스트를 진행해야 한다. 그래야 일관된 결괏값을 얻을 수 있다.
  • 데이터베이스는 데이터가 어떻게 저장되어 있는지와 얼마나 많은 양이 저장되어있는지에 따라서 성능 차이가 많이 난다. 따라서 실제 프로덕션 환경과 비슷하게 데이터를 구성해두고 부하 테스트를 해야 보다 정확한 결괏값을 얻을 수 있다.
  • 이 과정을 조금 더 간소화하기 위해서는 프로덕션 환경의 데이터들이 포함된 DB 복제본을 떠서 그 DB로 부하 테스트를 진행하기도 한다.

부하 테스트 인프라 구성