서버 과부하
정의
서버 과부하란 서버가 리소스 한계에 도달하여 사용자의 웹 요청을 처리하지 못하는 상태
해결
모니터링을 통한 자원 할당
- 서버의 CPU 사용량, 메모리, 대역폭 등을 지속적으로 모니터링하여 자원을 적절히 할당(서버 대수 증감)
- 클라우드 서비스 이용(AWS 오토 스케일링), 무료 모니터링 서비스(netdata)
로드 밸런서
- 서버 앞단에 로드밸런서를 설치하여 트래픽을 분산
- 서버에 장애 발생 시, 트래픽을 다른 서버로 리다이랙션하여 시스템 중단을 방지
블랙스완 프로토콜
- 예측할 수 없는 사고 발생에 대히바여 시스템의 영향을 받는 부분을 파악하고, 관련 팀에 연락하여 빠르게 대응
서킷 브레이커
- 서비스 간의 연쇄적인 오류 방지 위해 서킷 브레이커 패턴 사용
- 네트워크 요청의 실패율이 임계치를 넘으면 바로 오류를 반환하여 (무한 대기 X) 더 이상의 서비스 장애를 막음
컨텐츠 관리
- 불필요한 컨텐츠 제거: 고용량의 컨텐츠나, 필요하지 않은 컨텐츠를 제거 (ex Select * -> select colName)
- CDN을 통한 컨텐츠 제공: 정적 자원(html,css,이미지)을 CDN을 통하여 제공하여 메인 서버의 부하를 줄임
- 컨텐츠 캐싱: 브라우저 캐시를 활용하여 네트워크 트래픽을 줄임
- 컨텐츠 압축: 텍스트 기반 리소스를 압축하여 데이터 전송량을 줄임
- 컨텐츠의 우하한 저하: 시스템의 부하를 줄이기 위해 필수적이지 않은 기능을 일시적으로 비활성화. 경량화된 페이지 제공
REF