본문 바로가기

CS

서버 성능 향상 방법

서버 성능의 지표

  1. 응답 시간
  2. TPS (처리량)

 

  1. 응답 시간 = 서버에서 처리 시간 + 클라이언트-서버 간의 데이터 전달 시간

  2. TPS (= Transaction per Second: 초당 처리할 수 있는 요청 개수)
    a. 스케일 아웃 이중화

    b. 스케일 업 CPU, 메모리 사양을 더 높임.

    c. 처리 시간을 줄이면 TPS가 늘어날 수 있음. 처리 시간 1초, 스레드 풀 10개 기준으로 TPS가 10이 나온다고 할 때 처리시간이 0.5초가 되면 TPS가 20이 된다.

    d. 따라서 처리 시간을 단축시키면 TPS를 향상시킬 뿐 아니라 응답시간까지 향상시킬 수 있다.

처리 시간 줄이는 방법

처리 시간에서 비중이 높은 대상을 찾아서 줄여야 한다. 비중이 높은 대상으로는 일반적으로 세 가지가 있다.

  1. DB 연동
    a. 쿼리 튜닝
    b. 캐싱(redis 등) 이용함으로써 DB 데이터 호출 수 절약
    c. read/write db 분리 및 read db 수 증가

  2. API 호출
    a. 캐싱 이용함으로써 API 호출 횟수 절약
    b. 메시지큐 이용함으로써 외부 시스템 직접 호출이 아닌 간접 호출 및 비동기 처리

  3. 데이터 집계/통계 연산
    a. 캐싱

  4. 통계류(좋아요 수, 조회 수, 팔로우 수)

응답 시간 줄이는 방법

  1. 응답 데이터 크기 줄이기
    a. 응답 자체를 압축, 이미지 품질 낮춤 등

  2. 트래픽 분리
    a. 정적 파일 같은 경우에는 CDN 이용. CDN은 정적 파일을 제공하는 데 특화된 서비스이므로 대역폭 자체가 넓다.

  3. 대역폭(최대로 전송할 수 있는 데이터의 양) 늘리기
    : 결국 인스턴스 사양 올리기

요약하자면

처리 시간을 줄이기 위해서는,

캐싱을 적극적으로 활용함으로써 외부 시스템을 호출하는 횟수를 줄이거나, DB에서 데이터를 조회해오는 횟수를 줄이거나, 통계 정보를 계산하는 횟수를 줄임으로써 처리 시간을 줄일 수 있다.

또한 메시지 큐 및 비동기 시스템을 활용함으로써 시스템 직접 호출 대신 간접 호출 방식을 선택함하거나 스케일 업/아웃 처리 시간을 줄일 수 있다.

 

 

응답 시간을 줄이기 위해서는,

대역폭을 늘리거나(스케일 업) 전송하는 데이터의 크기(데이터 압축)를 줄이거나, 트래픽을 분산(CDN, 로드밸런서 등)시켜야 한다.

 

 

참고

https://loosie.tistory.com/794

'CS' 카테고리의 다른 글

스레드 수와 서버 성능의 관계  (2) 2024.02.14