#04 왜 한 부분의 성능만 높여서는 안 되는가? (병목과 균형)


컴퓨터나 서버의 성능을 높인다고 하면 가장 먼저 CPU, GPU, 메모리처럼 개별 부품의 사양을 떠올리기 쉽습니다.

더 빠른 CPU를 사용하고, 더 강력한 GPU를 추가하고, 저장장치를 더 빠른 제품으로 바꾸면 각 부품의 처리 능력은 높아집니다.

실제 인프라에서는 여러 구성 요소가 하나의 작업을 나누어 처리합니다. 데이터를 저장장치에서 읽고, 메모리에 올리고, CPU나 GPU에서 계산한 뒤, 필요한 결과를 다시 저장하거나 네트워크를 통해 전달합니다.

인프라의 실제 성능은 이 전체 흐름이 얼마나 원활하게 이어지는지에 따라 결정됩니다.

이때 전체 성능을 제한하는 지점을 병목(Bottleneck)이라고 합니다.


인프라는 여러 구성 요소가 연결된 하나의 흐름이다

앞서 디지털 인프라를 계산, 연결, 저장, 배치·제공, 운영 환경으로 나누어 살펴봤습니다.

실제 작업에서는 이 요소들이 서로 연결됩니다.

예를 들어 AI 서버가 데이터를 처리한다고 생각해 보겠습니다.

  1. 저장장치에서 데이터를 읽습니다.
  2. CPU가 데이터를 불러오고 필요한 형태로 준비합니다.
  3. 메모리가 데이터를 보관하면서 CPU나 GPU에 전달합니다.
  4. GPU가 대규모 계산을 수행합니다.
  5. 처리된 결과를 저장합니다.
  6. 필요한 데이터와 결과를 네트워크를 통해 다른 시스템으로 전달합니다.

이 과정에서 각 구성 요소는 다음 단계에 필요한 데이터를 계속 넘겨줘야 합니다.

GPU가 매우 빠르게 계산할 수 있어도 데이터를 충분한 속도로 공급받아야 그 성능을 활용할 수 있습니다. 저장장치, CPU, 메모리, 네트워크도 같은 방식으로 서로 연결됩니다.

따라서 시스템 성능을 볼 때는 개별 부품의 최고 사양과 함께 전체 처리 흐름을 살펴봐야 합니다.


병목(Bottleneck)이란 무엇일까?

병목은 원래 병의 목처럼 좁아진 부분을 의미합니다.

넓은 병 안에 많은 물이 들어 있어도 목이 좁으면 한 번에 빠져나갈 수 있는 물의 양이 제한됩니다.

IT 인프라에서도 비슷한 원리가 적용됩니다.

병목(Bottleneck)은 전체 작업 흐름에서 처리량을 제한하거나 지연을 크게 만드는 지점입니다.

예를 들어 다음과 같은 서버가 있다고 가정해 보겠습니다.

  • GPU는 초당 많은 데이터를 계산할 수 있습니다.
  • 저장장치는 그보다 적은 양의 데이터를 읽어올 수 있습니다.
  • GPU는 저장장치에서 데이터가 도착하는 속도에 맞춰 작업하게 됩니다.

이 경우 저장장치의 데이터 공급 속도가 전체 처리 성능에 큰 영향을 줍니다.

GPU의 계산 능력이 충분하더라도 실제 처리량은 데이터가 공급되는 속도의 영향을 받습니다.


빠른 GPU도 데이터를 기다릴 수 있다

AI 인프라에서는 GPU 성능이 자주 강조됩니다.

GPU는 대규모 행렬 계산을 빠르게 수행하기 때문에 AI 학습과 추론에서 중요한 역할을 합니다.

GPU가 작업하려면 먼저 처리할 데이터가 준비되어 있어야 합니다.

예를 들어 대규모 AI 학습 환경에서는 저장장치에서 데이터를 읽어오고, CPU가 데이터를 전처리하고, 메모리와 네트워크가 이를 GPU까지 전달합니다.

이 과정 중 하나의 처리 속도가 부족하면 GPU가 다음 데이터를 기다리는 시간이 늘어날 수 있습니다.

GPU 사용률이 낮아지고 실제 계산에 사용하는 시간이 줄어들면서 GPU의 처리 능력을 충분히 활용하기 어려워집니다.

그래서 AI 인프라를 구축할 때는 GPU 개수와 성능뿐 아니라 다음 요소를 함께 확인합니다.

  • CPU의 데이터 처리 능력
  • 메모리 용량과 대역폭
  • 저장장치의 읽기·쓰기 성능
  • 서버 내부 연결 속도
  • 서버 간 네트워크 대역폭

높은 계산 성능을 실제 처리 성능으로 연결하려면 계산 장치까지 데이터를 충분한 속도로 공급할 수 있는 구조가 필요합니다.


CPU, 메모리, 저장장치와 네트워크에서도 병목이 생긴다

병목은 일반적인 업무 시스템에서도 발생합니다.

CPU 병목

CPU가 처리해야 하는 요청이 많아지면 CPU 사용률이 높아지고 작업 대기 시간이 길어질 수 있습니다.

웹 서버, 데이터 처리 시스템, 애플리케이션 서버처럼 CPU 계산이 많은 환경에서 나타날 수 있습니다.

메모리 병목

프로그램이 사용할 메모리가 부족하면 필요한 데이터를 메모리에 충분히 올려두기 어려워집니다.

고성능 CPU나 GPU에서는 메모리와 데이터를 주고받는 속도인 메모리 대역폭(Memory Bandwidth)도 중요한 성능 요소가 됩니다.

저장장치 병목

데이터를 자주 읽고 쓰는 데이터베이스나 대규모 파일 처리 시스템에서는 저장장치의 입출력 속도가 전체 성능에 큰 영향을 줄 수 있습니다.

저장장치의 성능을 확인할 때는 전송 속도와 함께 초당 입출력 작업 수를 의미하는 IOPS(Input/Output Operations Per Second)도 활용합니다.

네트워크 병목

서버끼리 많은 데이터를 주고받는 시스템에서는 네트워크 대역폭과 지연시간이 중요합니다.

클라우드, 분산 데이터베이스, AI 클러스터처럼 여러 서버가 하나의 작업에 참여하는 환경에서는 서버 자체의 성능과 함께 서버 사이의 연결 성능도 전체 처리 속도에 영향을 줍니다.


병목은 작업에 따라 위치가 달라진다

같은 컴퓨터나 서버에서도 어떤 작업을 수행하느냐에 따라 중요한 자원이 달라집니다.

대규모 계산이 많은 작업에서는 CPU나 GPU의 계산 성능이 중요해질 수 있습니다.

데이터베이스처럼 데이터를 반복해서 읽고 쓰는 작업에서는 메모리와 저장장치의 성능이 중요해질 수 있습니다.

여러 서버가 많은 데이터를 교환하는 분산 시스템에서는 네트워크가 중요한 요소가 됩니다.

하나의 병목을 개선하면 전체 처리량이 높아지면서 다음 제한 지점이 나타날 수도 있습니다.

예를 들어 저장장치를 개선해 데이터를 더 빠르게 공급하면 이후에는 CPU 처리 능력이나 네트워크가 전체 성능에 더 큰 영향을 줄 수 있습니다.

따라서 병목은 현재의 작업과 시스템 구성에서 전체 성능을 제한하고 있는 지점으로 이해하는 것이 좋습니다.


인프라의 ‘균형’은 무엇을 의미할까?

인프라에서 균형은 각 구성 요소의 처리 능력을 실제 작업 흐름에 맞게 연결하는 상태를 의미합니다.

예를 들어 영상 파일을 대량으로 처리하는 시스템이라면 저장장치와 네트워크에 높은 처리 능력이 필요할 수 있습니다.

대규모 AI 모델을 학습하는 시스템이라면 GPU와 함께 GPU 사이의 고속 연결, 메모리, 데이터 공급 구조가 중요합니다.

일반적인 기업 업무 시스템에서는 CPU, 메모리, 저장장치와 네트워크가 업무량에 맞게 구성되어야 안정적으로 서비스를 운영할 수 있습니다.

좋은 인프라는 실제 업무가 요구하는 처리량에 맞춰 각 자원이 자연스럽게 연결되는 구조입니다.

따라서 인프라의 성능을 볼 때는 어떤 부품이 가장 빠른지를 확인하는 것과 함께 전체 작업이 어디에서 기다리고 있는지 살펴봐야 합니다.

병목을 찾는다는 것은 바로 이 기다림이 발생하는 지점을 찾는 과정입니다.


기업은 왜 병목을 먼저 확인할까?

인프라를 증설하는 데는 비용이 듭니다.

서버, GPU, 저장장치, 네트워크 장비를 추가하면 장비 구입비뿐 아니라 전력, 냉각, 공간, 클라우드 사용료와 운영비도 함께 증가합니다.

그래서 기업은 성능 문제가 발생했을 때 현재 어떤 자원이 전체 처리를 제한하는지 확인합니다.

예를 들어 웹 서비스가 느려졌을 때 다음과 같은 지표를 살펴볼 수 있습니다.

  • CPU 사용률
  • 메모리 사용량
  • 저장장치 입출력량
  • 네트워크 사용량
  • 요청 처리 시간
  • 대기 중인 작업의 수

이 데이터를 통해 실제 병목을 찾으면 투자 우선순위도 더 분명해집니다.

CPU 처리 능력이 부족한 시스템에는 CPU 자원을 늘리고, 저장장치 입출력이 제한 요소라면 저장 구조를 개선하며, 네트워크 대역폭이 부족한 환경에서는 네트워크 구성을 조정할 수 있습니다.

인프라 성능 관리의 핵심은 필요한 자원을 필요한 지점에 배치하는 것입니다.

DANA NOTES 한 줄 정리

인프라의 성능은 전체 작업 흐름에서 병목을 줄이고 각 구성 요소의 처리 능력을 균형 있게 연결할 때 높아집니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤