SERVER/Node.js

💻 웹 서비스 성능 올리기(처리량, 응답시간)

완자✨ 2022. 4. 24. 22:20

웹 서비스 성능 올리기(처리량, 응답시간)

  • 서버 성능 기본 짚 2개: 응답 시간, 처리량
  • TPS(Transaction Per Second): 초당 몇개 클라이언트 요청을 처리하는지를 나타냅니다.

캡처

📌 TPS를 높이려면

  • 가장 쉬운 방법 : 서버 늘리기
    • 단순하게 서버 1대가 10TPS면 2대면 20TPS가 됩니다.
  • 비슷한 방법으로 쓰레드 풀+DB 커넥션 풀 늘리기
    • 동시 처리할 수 있는 개수
      • 쓰레드 풀 5, 처리 시간 1초 => TPS 5
      • 쓰레드 풀 10, 처리 시간 1초 => TPS 10

📌 처리 시간을 줄이려면

  • 처리 시간에서 비중이 높은 대상을 찾아 줄여햐 함
  • 비중이 높은 대상
    • DB 연동
    • API 호출
    • 데이터 집계/계산

1.DB 처리 시간 줄이기

  • 보통 세 가지 방법 : 퀴리 튜닝, 캐시 서버 이용, 하드웨어 업그레이드
  • 하드웨어 업그레이드: 읽기 전용과 쓰기 전용 DB를 분리합니다. 또는 DB 서버의 CPU, RAM 등을 고사양으로 교체하거나 추가합니다.

2.API 호출 처리 시간 줄이기

  • API 호출 응답 시간 증가 => 처리 시간 증가
  • API 호출 성능 개선 방법 2가지: 캐시, 호출 제거
    • 호출 제거 : 메시징 + 비동기 연동

3.데이터 집계/계산

  • 미리 계산해서 캐시나 DB에 보관하기

📌 응답 시간을 줄이려면

  • 대기 시간도 줄일 필요가 있습니다.

대기 시간 줄이기 : 대역폭

  • 대역폭이 작으면 클라이언트 개수가 증가할 때 주고 받는 속도가 급격히 느려짐
    • 고속도로에 차가 증가하면 속도가 느려지는 것과 유사합니다.
  • 세가지 방식을 고려 할 수 있습니다.
    • 응답 크기 줄이기 : 응답 압축, 이미지 파일 크리 줄이기
    • 트래픽 분리하기 : 이미지 정적 파일을 CDN을 통해 제공
    • 대역폭 늘리기 : 비용 측면에서 CDN이 유리

CDN 이란?

  • CDN(콘텐츠 전송 네트워크)은 지리적으로 분산된 여러 개의 서버입니다.
  • CDN은 웹 페이지, 이미지, 비디오 등의 콘텐츠를 사용자의 물리적 위치와 가까운 프록시 서버에 캐싱합니다.
  • 이렇게 하면 콘텐츠가 로딩될 때까지 기다릴 필요 없이 영화 감상, 소프트웨어 다운로드, 은행 잔고 확인 등의 작업을 할 수 있습니다.

💻 정리

처리량을 높이려면 처리시간을 줄이려면 대기 시간을 줄이려면
- 처리 시간을 출여야함
- 장비 추가(스케일 아웃)
- 쓰레드 풀/커넥션 풀 크기 조절
- DB 퀴리 튜닝, 장비 업그레이드
- 캐시 서버 사용
- 미리 데이터 집계/계산하기
- 응답 크기 줄이기
- 정적 파일 트래픽 분리(CDN 이용)
- 대역폭 늘리기

'SERVER > Node.js' 카테고리의 다른 글

📌Observer Pattern이란?  (0) 2022.05.11
SOA, MSA 아키텍처란?  (0) 2022.05.10
🖋서버 확장을 위한 두가지 방법  (0) 2022.04.24
💻 WebRTC란  (0) 2022.04.17
💻Socket.Io 이해하기  (0) 2022.04.17