IT인프라구조

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

코딩만만세 2024. 7. 21. 20:15

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

4.1 직렬/병렬 

4.1.1 직렬/병렬이란?

여러 개의 물건이 일직선으로 나열돼 있는 것을 직렬, 두 줄 이상으로 나열돼 있는 것을 병렬이라고 한다.

예를 들면 1차선 도로는 직렬, 2차선 이상의 도로는 병렬이다.

그림 4.1에서는 3차선 도로가 도중에 합류해서 1차선이 되고, 다시 3차선으로 분기하고 있다.

 

그림4.2를 보자. 특정 기간 내에 하나의 CPU로 처리할 수 있는 양에는 한계가 있지만, 여러 개의 CPU를 배치하면

처리량을 늘릴 수 있다.

 

직렬/병렬의 중요 사항을 정리하면 다음과 같다.

  • 직렬 처리로 속도를 올리는 데는 한계가 있다.
  • 병렬화를 통해 속도는 빨라지지 않지만, 단위 시간당 처리량을 늘릴 수 있다.
  • 병렬 처리에서는 합류점, 직렬화 구간, 분기점이 병목 지점이 되기 쉽다.
  • 병렬화할 때는 일을 분담해서 처리를 한 후 다시 집약할 때 오버헤드가 걸린다. 그러므로 이 오버헤드를 감안하더라도 효과가 있을 경우에 병렬화를 한다.

4.1.2 어디에 사용되나?

 

그림4.3은 웹서버와 AP 서버 내부 처리를 간략화해서 표시한 것이다.

그림4.3에서는 아파치 1프로세스 1스레드, JVM은 1프로세스 4스레드이지만, 하나의 CPU 코어를 동시에 사용할 수 있는 것은 1스레드이다.예를 들어 하나의 CPU코어밖에 없는 서버에서는 아파치 프로세스를 아무리 늘려도 동시에 실행할 수 있는 것은 1프로세스 뿐이다.

 

DB서버에서도 프로세스를 늘려서 병렬 처리를 할 수 있다.

 

4.1.3 정리

직렬/ 병렬의 장단점

  장점 단점
직렬 구조가 간단해서 설계나 구현 난이도가 낮다 복수의 리소스(컴퓨터나 프로세서등)를 유용하게 이용할 수 없다
병렬 복수의 리소스(컴퓨터나 프로세서등)를 유용하게 이용할 수 있으며, 직렬에 비해 동일 시간당 처리할 수 있는 양이 증가한다. 또한, 일부가 고장 나더라도 처리를 계속할 수 있다. 처리 분기나 합류를 위한 오버헤드가 발생한다.
배타적 제어 등을 고려해야하고 구조가 복잡해서 설계나 구현 난이도가 높다

4.2 동기/비동기 

4.2. 동기/비동기란?

Ajaxdml 'A'는 Asynchronous의 약자로, '비동기'라는 의미다.

그러면 동기, 비동기는 무엇일까?

 간단하게 설명하면 누군가에게 일을 부탁하고 그 일이 끝나기까지 잠자코 기다리는 것이 동기이고, '끝나면 말해'라고 말해 두고다른 일을 하는 것이 비동기다.

4.3 큐 91

4.4 배타적 제어 97

4.5 상태 저장/상태 비저장 102

4.6 가변 길이/고정 길이 107

4.7 데이터 구조(배열과 연결 리스트) 113

4.8 탐색 알고리즘(해시/트리 등) 117

'IT인프라구조' 카테고리의 다른 글

제3장 3계층형 시스템을 살펴보자  (0) 2024.07.21
제2장 서버를 열어 보자  (0) 2024.07.21
이미지2  (0) 2024.07.18
이미지1  (0) 2024.07.18
제1장 인프라 아키텍처를 살펴보자 1  (0) 2024.07.17