본문 바로가기
IT KNOWLEDGE

병목현상

by BTC_뚜벅이 2022. 6. 23.

ABTCEFG♪  안녕하세요, 여러분!

 

BTC_뚜벅이입니다.

 

기초 탄탄 인프라에 대한 개념을 잡는 시간입니다.

 

 

오늘은 병목현상에 대해 알아보도록 할게요.

 

병목현상이란

 

병목현상의 의미

쉽게 생각하면 일상에서 병목현상의 개념을 교통량이 정체되어 출퇴근이 혼잡한 시간대에서 찾을 수 있습니다. 

이를 인프라 아키텍처 용어로는 처리량을 제한하고 있는 요인으로 병(Bottle)+목(Neck)의 합성어입니다.


위 그림을 보면 이해가 빠르실거에요.

가운데 부분이 좁기 때문에 대기열의 요청이 통과되려면 많은 시간이 걸립니다.

이를 병목현상이라고 이해하면 좋을 거 같습니다!


병목현상 접근 시 알아야 할 점

  • 성능 분석의 시작은 병목 현상이 발생하고 있는 위치 정확히 파악
  • 각 서버의 처리량 응답 상황 로그를 취득해서 병목 지점이 되고 있는지 발견하기
  • 대부분의 병목 현상은 예상보다 많은 부하가 걸려 발생


해결방법

  • 튜닝(병목 위치를 파악해서 해결)
  • 유량 제어(시스템 이용자 수 제한) : 유량 제어는 사용자에게 에러를 반환하는 것이 전부라서 근본적인 해결책x
  • 샤딩(수평 분할) : 서버 증설

주의사항

  • 응답이 느리다면 APP 서버가 병목지점일 수 있습니다.
  • APP서버가 병목지점이기 때문에 이를 늘리면 기대와 달리 DB서버에서 새로운 병목현상이 발생하게 됩니다.

    성능 개선 접근법에는 끝이 없으므로 시스템 관점에서 목표를 세우는 것이 매우 중요합니다.

댓글