본문 바로가기

# 01/네트워크

그림으로 공부하는 IT 인프라구조-4

반응형

4. 인프라를 지탱하는 기본이론


4.1 웹 데이터 흐름

4.1.1 직렬/병렬 이란?

PC에 여러개의 CPU가 탑재되있다. CPU수가 늘어난 배경에는 소비전력과 발열 문제가 있다. CPU 제조사가 클럭속도를 올리는 대신에 코어 수를 늘려서 이 문제를 해결하려고 방침을 전환했기 떄문이다. 
CPU라는 미시적인 관점에서 시스템 전체라는 거시적인 관점으로 눈을 돌리면 대규모 웹 서비스에서는 방대한 수의 사용자 요청을 처리해야 하므로 수많은 서버를 배치해서 병렬로 처리하고 있음을 알 수있다. 이처럼 주변에는 병렬 처리가 넘쳐나고 있지만, 무조건 병렬화한다고 해서 성능이 향상되는 것은 아니다. 예를 들어, CPU 코어나 서버를 병렬화 할 떄는 병렬화한 하드웨어를 놀리지 않고 어떻게 효율적으로 활용할지가 중요하다. 
여러개의 물건이 일직선으로 나열돼 있는것이 직렬, 두 줄 이상으로 나열돼 있는것이 병렬이다. 

특정 기간 내에 하나의 CPU로 처리할 수 있는 양에는 한계가 있지만, 여러 개의 CPU를 배치하면 처리량을늘릴 수 있다. 단, 다수의 CPU를 이용 할 수 있는 처리여야 한다는 전제 조건이 있다.이때는 CPU 클럭 주파수를 올리는 방법, 즉 직렬 처리 속도를 올리면 고속처리가 가능하다. 병렬 처리를 할 때는 가능한 한 병렬화해서 직렬부분을 줄이고, 어쩔 수 없이 직렬화해야 하는 경우에는 효율성을 높이는 것이 중요하다. 또한, 병렬화에서는 분담해서 일을 진행한 것을 다시 한곳에 모으는데 오버헤드가 걸린다. 무리해서 병렬화 하면 직렬 처리에의해 속도가 느려지는 경우가 있다. 병렬화 할때는 오버헤드를 예상해서 어떤 부분을 병렬화 할지 파악하는 것이 중요하다.

- 직렬 처리로 속도를 올리는 데는 한계가 있다.
- 병렬화를 통해 속도는 빨리지지 않지만, 단위 시간당 처리량을 늘릴 수 있다.

= 병렬 처리에서는 합류점, 직렬화 구간, 분기점이 병목 지점이 되기쉽다.
= 병렬화할 때는 일을 분담해서 처리를 한 후 다시 집약할 때 오버헤드가 걸린다. 그러므로 이 오버헤드를 감안하더라도 효과가 있을 경우에 병렬화를 한다.


반응형