[대규모 서비스를 지탱하는 기술] 34장. 시스템 안정화

June·2022년 1월 1일
0

시스템 안정화를 위한 상반관계

시스템 안정화와 상반관계

  • 안정성 <-> 자원효율
  • 안정성 <-> 속도
  • 한계에 이를 때까지 메모리를 튜닝
    • 메모리 소비가 늘어난다 -> 성능 저하 -> 장애
  • 한계에 이를 때까지 CPU 사용
    • 서버 1대가 다운 -> 전체 처리능력 초과 -> 장애

시스템의 불안정 요인

  1. 기능 추가, 2. 메모리 누수
    새로운 기능을 추가하면 전체적인 부하가 늘어난다.

  2. 지뢰
    특정 URL이 읽히면 아무리 시간이 지나도 응답이 오지 않아서 장애의 원인이 되는 것.

  3. 사용자의 액세스 패턴
    사용자의 액세스 패턴 변화도 부하가 증대되는 원인이 된다. 인기가 많은 사이트에 링크를 걸어 두면 그 사이트 사용자가 집중적으로 접속해서 다운되는 경우가 자주 있다.

이러한 액세스 변동도 흡수할 수 있도록 구성해두는 게 중요하다. 캐시 서버를 사이에 추가해서 게스트 사용자의 경우에는 캐시를 반환할 수 있도록 할 수도 있다.

  1. 데이터량 증가
    압축이 필요하다.

  2. 외부연계 추가
    외부 웹 API를 연결하는 것을 말한다. 이것도 불안정한 요인이 된다. 외부 서비스가 다운되면 같이 다운되는 것이다. 연계하고 있는 서비스에 영향을 받지 않고 충분한 속도로 동작하거나, 그 부분만 동작을 안하고 다른 부분은 출력을 할 수 있도록 하는 등을 구현하는게 중요하다.

  3. 메모리 장애, HDD 장애, 8. NIC 장애
    하드웨어의 능력이 저하되더라도 문제가 되지 않도록 해두는 것도 중요하다. 예를 들면 로드밸런서에서 적절한 항목에 대해 헬스체크를 해서 하드웨어 장애로 이상이 생겼을 때 바로 문제가 발생한 서버로 요청이 전송되지 않도록 할 수가 있다.

0개의 댓글