관리 메뉴

생각해보기

인프라와 병목현상 본문

IT인프라

인프라와 병목현상

정한_s 2021. 10. 31. 10:02

시스템 성능을 가리킬 때 응답과 처리량이라는 지표가 자주 사용된다. 응답은 처리 하나당 소요 시간을 의미하고 처리량은 단위 시간당 처리하는 양을 의미한다.

 

사용자에게 빠르게 응답하기 위해서는 처리량을 늘려야 한다. 처리량을 늘리기 위해서는 병목현상을 개선해야 한다.

처리량을 높이기 위해 웹 서버와 애플리케이션 서버를 늘리는 경우 최종적으로 데이터베이스 서버가 병목 지점이 되는 경우가 많다

 

* 병목현상은 시스템 상에서 반드시 존재하며 특정 부분이 처리량이 낮다면 그곳이 병목현상 구간이다. 따라서 병목현상을 없애려고 노력하는 것보다 "몇 퍼센트 개선시킨다"라는 시스템 전체 관점의 목표를 세우는 것이 중요하다.

 

병목현상 종류

CPU 병목 현상, 메모리 병목 현상, 디스크 I/O 병목 현상, 네트워크 I/O 병목 현상, 어플리케이션 병목 현상

1. CPU 병목 현상

CPU에 성능 문제는 주로 두 가지이다.  CPU를 이용하는 처리가 많아서 대기가 발생하거나 CPU 응답이 느린 것이다. 대기가 발생한다면 CPU 코어 수를 늘리거나 서버 수를 늘리는 스케일 아웃을 하고 CPU 응답이 느리다면 CPU 처리 속도를 올리거나 애플리케이션을 병렬로 처리할 수 있게 만든다. 

 

2. 메모리 병목 현상

메모리 병목현상은 영역 부족 문제와 동일 영역의 경합 문제로 나눌 수 있다. 다음은 영역 부족 문제이다. 페이지 테이블을 갱신할 때 디스크와 메모리 사이의 이동이 발생한다. 이때 디스코와 메모리는 성능 차이가 크므로 오버헤드가 생기고 성능이 저하된다. 다음은 동일 영역의 경합 문제이다. 다수의 프로세스가 동시에 같은 영역에 액세스 할 때, 이 메모리 영역을 확보하기 위해 대기시간이 발생한다. 이때 동일 데이터에 대해 병목현상이 일어나 성능이 저하된다.   

 

3. 디스크 I/O 병목 현상

하드디스크 등의 저장 장치에 대한 I/O 병목이다. 메모리와 비교했을 때 디스크 I/O는 매우 느리다. I/O가 병목 지점이 되었을때 I/O 효율을 높이거나 I/O를 줄이는 방법을 생각해야 한다.

 

4. 네트워크 I/O 병목 현상

네트워크를 경유하는 I/O 응답을 근본적으로 개선하는 것이 어려우며, 처리량을 개선하는 접근을 해야하며 경로와 트래픽 증감에 대해 검토해야 한다. 

 

5. 애플리케이션 병목 현상

병목현상을 개선하기 위해 알고리즘과 인프라에 맞춰 프로세스를 개선해야한다.

 

 

* CAP 이론

더보기

일관성(Consistency)

모든 요청은 최신 데이터 또는 에러를 응답받는다.
DB가 A, B, C 노드로 분산되어 있는 환경을 가정한다. A 노드에 데이터를 변경이 일어나면 이 변경사항은 Replication 기능에 의해 B, C 노드에도 반영된다. A 노드의 변경사항이 B, C 노드까지 전달되기에는 시간이 필요하다. 이때, B나 C 노드에 접근한 유저를 변경사항이 완전히 반영될 때까지 기다리게 해 최신 데이터를 반환하게 한다. 이는 일관성 있는 시스템이라고 할 수 있다.

가용성(Availability)

모든 요청은 정상 응답을 받는다.
앞에 설명한 DB 환경에서 계속 생각해보자. B 노드에 장애가 발생해서 서비스를 할 수 없게 되었다. 하지만, A, C 노드는 살아 있어서 A, C 노드로 계속해서 유저에게 서비스를 한다면, 가용성 있는 시스템이라고 할 수 있다.

네트워크 파티션 허용(Partition tolerance)

노드 간 통신이 실패하는 경우라도 시스템은 정상 동작한다.
네트워크 장애가 일어나는 것을 인정하느냐를 묻는다. 네트워크 장애로 B 노드가 A, C 노드와 연결이 되지 않아 Replication이 제대로 이루어지지 않을 때, A, C 노드와 B 노드는 데이터가 서로 다를 것이다. 그럼에도 서비스를 계속한다면, 이는 가용성 있는 시스템이라고 할 수 있다. 

CAP 이론

아래의 그림을 보자. CAP 세 가지 속성을 모두 만족하는 부분은 존재하지 않는다. 즉, 분산 시스템에서 이 세 가지 속성을 모두 만족하는 것은 불가능하며, 오직 2 가지만 만족할 수 있다로 정리된다.

 

Comments