성능 개선을 위해 주니어가 알아야 되는 값

  • 먼저 현재 서버의 처리량과 응답 시간을 알아야 한다
  • 막연히 느리다고 이것저것 시도 X -> 시간낭비 가능성 있다
  • 트래픽이 많은 시간대의 TPS와 응답 시간이 얼마인지 측정
    • 이 결과를 바탕으로 목표 TPS, 응답 시간 설정 후
    • 효과적인 성능 개선안을 도출해야함

처리량

  • 단위 시간당 시스템이 처리하는 작업량
  • TPS
    • transaction per second
    • 초당 트랜잭션 수
  • RPS
    • request per second
    • 초당 요청 수
  • 서버는 처리량 늘리기 위해
    • 동시 처리 요청 수를 늘리기
    • 한 개 요청 처리 시간 단축
  • 시도 가능
  • 동시 처리 요청 수를 늘린다면 0~1초 동안의 시간을 다 쓰는 요청이 있다 가정한다면...
    • 동시 처리 요청수만큼 TPS가 증가
  • 요청 처리 시간을 단축한다면 기존에 1초동안 지속되면걸 0.4로 줄이면...
    • 2배가 느는 효과가 생기는 것!

TPS 를 확인하는 가장 간단한 방법

  • 바로 모니터링 시스템을 이용
  • 스카우터, 핀포인트, 뉴렐릭 같은 도구 사용
    • 실시간 TPS뿐 아니라 과거 특정 시점의 TPS도 확인 가능

응답 시간

  • 사용자의 요청을 처리하는데 서버에서 걸리는 시간
  • 클라가 서버로 요청 보내는 과정은 크게 2단계
    1. 서버에 연결: TCP 이용해서 서버 연결
    2. 데이터 전송: 정해진 프로토콜 따라 데이터를 서버에 전송
  • 응답시간 측정
    • TTFB(Time to First Byte): 응답 데이터중 첫번째 바이트 도착까지 걸린 시간
    • TTLB(Time To Last Byte): 응답 데이터의 마지막 바이트가 도착할 때까지 걸린 시간