웹 서비스 성능 올리기(처리량, 응답시간)
- 서버 성능 기본 짚 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 |