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 부하의 규모 조정이 해결되어야 하는 것이다.
'개발관련 도서 > 대규모 서비스를 지탱하는 기술' 카테고리의 다른 글
3-1. OS 캐시 (0) | 2021.05.03 |
---|---|
3장. 대규모 데이터를 다루기 위한 기초지식(#대규모 서비스를 지탱하는 기술) (0) | 2021.05.03 |
2장. 대규모 데이터 처리 입문(#대규모 서비스를 지탱하는 기술) (0) | 2021.05.01 |
1. 대규모 서비스에서 발생가능한 문제(#대규모 서비스를 지탱하는 기술) (0) | 2021.05.01 |
웹 개발자를 위한 대규모 서비스를 지탱하는 기술 (0) | 2021.05.01 |