[대규모 서비스를 지탱하는 기술] 6장.규모조정의 요소

June·2021년 12월 23일
0

규모조정, 확장성

웹 서비스에서는 스케일업 전략보다는 스케일아웃 전략이 주류이다. 이유는 다양하지만, 비용이 저렴하다는 점과 시스템 구성에 유연성이 있다는 점이 포인트다.

규모 조정의 요소

CPU 부하는 확장성을 확보하기는 쉽다. 하지만 I/O부하는 확장하기 어렵다.

CPU 부하는 분산이 쉬운 이유는 데이터를 분산해서갖고 있는 것이 아니기 때문이다. 요청을 균등하게 분산하는 로드밸런스를 통해서 해결할 수 있다.

하지만 DB는 데이터의 동기화 문제가 있다.
따라서 서비스가 무겁다고 서버를 늘리는 것이 만능이 아니다. 어려움은 다른데 있다.

멀티태스킹 OS와 부하

Load Average는 평균적으로 어느정도의 태스크가 대기상태로 있었는지를 보고하는 수치다. Load Average가 높은 상황은 그만큼 태스크 실행에 대기가 발생하고 있다는 표시이므로, 지연이 되는 = 부하가 높은 상황이라고 할 수 있다.

Average가 보고하는 부하의 정체
커널은 타이머 인터럽트가 발생했을 때 실행가능 상태인 태스크와 IO 대기인 태스크의 개수를 세어둔다. 그 값을 단위 시간으로 나눈 것이 Load Average 값으로 보고된다.

즉, Load Average가 의미하는 부하는

  • 처리를 실행하려고 해도 실행할 수 없어서 대기하고 있는 프로세스의 수
    를 말하며, 보다 구체적으로는
  • CPU의 실행권한이 부여되기를 기다리고 있는 프로세스
  • 디스크 IO가 완료하기를 기다리고 있는 ㅍ로세스

LoadAverage는 두 가지의 부하를 합쳐서 어디까지나 대기 태스크 수만을 나타내는 수치이므로 이를 보는 것만으로는 CPU 부하가 높은지 IO 부하가 높은지 알 수 없다.

0개의 댓글