개발관련 도서/대규모 서비스를 지탱하는 기술

2-1.규모조정, 확장성(#대규모 서비스를 지탱하는 기술)

prden 2021. 5. 2. 10:32

src="대규모 서비스를 지탱하는 기술 p43"

1. CPU 부하 해결방법 : 

 AP서버는 CPU 부하만 걸리므로 2', 2''등 과 같이 서버(동일한 구성을 갖는 서버) 대수만 늘려서 확장한 뒤 요청을 균등하게 분산하는 로드밸런서라는 장치를 달아주면 해결 가능. *AP서버 = CPU바운드한 서버

 

2. I/O 부하 :

한편, I/O부하는 해결하기 까다롭다. DB를 3, 3'로 놓았을 때 2에서 3으로 쓰기(insert)가 발생하면 3이 지닌 데이터와 3'이 지닌 데이터를 어떻게 동기화할 것인가에 대한 문제가 발생하기 때문이다. *DB서버:데이터를 디스크로부터 검색하는일 주로 함. =I/O바운드한 서버

 

3. DB 확장성 확보의 어려움 : 

DB에서는 디스크를 많이 사용하므로 디스트 I/O를 많이 발생시키는 구성으로 되어있으면 속도차 문제가 생긴다. 게다가 데이터가 커지면 커질수록 메모리에서는 처리하지 못하고 디스크상에서 처리할 수밖에 없게 된다. 즉, 대규모 환경에서는 I/O 부하를 부담하고 있는 서버는 애초에 분산시키기 어려우며, 디스크 I/O가 많이 발생하면 서버가 금세 느려지는 본질적인 문제가 발생한다. 

 

※ 서비스가 무거우니 서버를 늘린다?

위에서 설명한 바와같이 단순히 서버를 늘리는 문제로 해결되는 것이 아니다. 대규모 서비스에서는 근본적으로 I/O 부하의 규모 조정이 해결되어야 하는 것이다.