컴퓨터 시스템 성능을 평가할 때 가장 자주 사용되는 두 가지 지표는 처리량(Throughput)과 지연 시간(Latency)이다. 이 두 지표는 시스템의 성능을 설명하는 핵심 개념이지만, 많은 경우 서로 독립적인 개념으로 오해되기도 한다. 실제로는 두 지표가 서로 밀접하게 연결되어 있으며 시스템 구조에 따라 서로 다른 방향으로 최적화되는 경우도 존재한다.
특히 현대의 컴퓨터 아키텍처에서는 단순히 한 작업을 얼마나 빠르게 수행하는지보다 일정 시간 동안 얼마나 많은 작업을 처리할 수 있는지가 중요한 경우가 많다. 클라우드 컴퓨팅 환경이나 대규모 데이터 처리 시스템에서는 이러한 특성이 더욱 두드러진다. 따라서 처리량과 지연 시간을 동시에 고려하는 성능 분석이 필수적이다.
처리량의 개념
처리량은 일정 시간 동안 시스템이 완료할 수 있는 작업의 수를 의미한다. 일반적으로 초당 처리 가능한 요청 수 또는 초당 실행 가능한 명령어 수와 같은 형태로 표현된다. 예를 들어 웹 서버의 경우 초당 처리 가능한 HTTP 요청 수가 처리량을 나타내는 대표적인 지표가 된다.
CPU 아키텍처 관점에서 처리량은 Instruction Per Cycle 또는 Instructions Per Second와 같은 형태로 표현될 수 있다. 파이프라인 구조나 슈퍼스칼라 구조는 이러한 처리량을 높이기 위한 대표적인 설계 방식이다.
예를 들어 파이프라인 구조가 없는 단순한 CPU에서는 하나의 명령어가 완료된 이후에 다음 명령어가 실행된다. 반면 파이프라인 구조에서는 여러 명령어가 동시에 서로 다른 단계에서 실행되기 때문에 단위 시간당 처리되는 명령어 수가 증가한다.
지연 시간의 개념
지연 시간은 하나의 작업이 시작된 시점부터 완료될 때까지 걸리는 시간을 의미한다. 이 값은 시스템이 개별 작업을 얼마나 빠르게 처리할 수 있는지를 나타낸다.
예를 들어 데이터베이스 시스템에서 특정 쿼리를 실행했을 때 결과가 반환되기까지 걸리는 시간이 지연 시간에 해당한다. 네트워크 시스템에서는 패킷이 출발지에서 목적지까지 도달하는 데 걸리는 시간이 지연 시간으로 측정된다.
CPU 내부에서도 동일한 개념이 적용된다. 특정 명령어가 파이프라인에 들어가 실행되고 결과가 레지스터에 기록되기까지의 시간이 지연 시간이다. 파이프라인 단계가 많을수록 지연 시간이 증가할 가능성이 있다.
처리량과 지연 시간의 상충 관계
처리량과 지연 시간은 많은 경우 서로 상충되는 특성을 보인다. 처리량을 높이기 위한 설계가 반드시 지연 시간을 줄이는 결과로 이어지지는 않는다.
대표적인 예가 파이프라인 구조이다. 파이프라인을 도입하면 여러 명령어를 동시에 처리할 수 있기 때문에 전체 처리량은 크게 증가한다. 그러나 개별 명령어가 모든 파이프라인 단계를 통과해야 하기 때문에 명령어 하나의 지연 시간 자체는 줄어들지 않는다.
이러한 현상은 멀티코어 시스템에서도 동일하게 나타난다. 여러 개의 코어를 활용하면 동시에 처리할 수 있는 작업 수가 증가하여 처리량이 향상된다. 하지만 개별 작업의 실행 시간이 반드시 감소하는 것은 아니다.
큐잉 이론과 성능 분석
처리량과 지연 시간의 관계를 이해하기 위해 자주 사용되는 이론이 큐잉 이론이다. 큐잉 이론에서는 시스템에 들어오는 작업의 도착률과 처리율을 기반으로 평균 대기 시간을 분석한다.
대표적인 관계식으로 Little의 법칙이 있다.
L = λ × W
여기서 L은 시스템 내부의 평균 작업 수, λ는 작업 도착률, W는 평균 지연 시간을 의미한다.
이 식은 처리량과 지연 시간 사이의 관계를 이해하는 데 중요한 통찰을 제공한다. 시스템 내부에 작업이 많이 쌓일수록 평균 지연 시간이 증가하게 되며 이는 결국 사용자 체감 성능을 저하시킬 수 있다.
컴퓨터 아키텍처에서의 적용 사례
컴퓨터 아키텍처에서는 처리량을 높이기 위한 다양한 기술이 사용된다. 대표적인 예로는 슈퍼스칼라 실행, 아웃오브오더 실행, 벡터 연산, SIMD 구조 등이 있다.
슈퍼스칼라 프로세서는 하나의 클럭 사이클에서 여러 개의 명령어를 동시에 발행할 수 있도록 설계된다. 이를 통해 단위 시간당 처리되는 명령어 수가 증가하며 전체 처리량이 향상된다.
하지만 이러한 구조는 내부적으로 복잡한 명령어 스케줄링과 의존성 분석을 필요로 한다. 이 과정에서 파이프라인 구조가 더욱 깊어지거나 실행 경로가 복잡해질 수 있으며 결과적으로 개별 명령어의 지연 시간은 증가할 가능성이 있다.
시스템 설계 관점에서의 균형
실제 시스템 설계에서는 처리량과 지연 시간 사이의 균형을 찾는 것이 중요하다. 서버 시스템과 실시간 시스템은 서로 다른 성능 목표를 가진다.
대규모 데이터 처리 시스템이나 웹 서버는 높은 처리량을 목표로 설계되는 경우가 많다. 반면 실시간 제어 시스템이나 금융 거래 시스템에서는 낮은 지연 시간이 더욱 중요하다.
따라서 시스템 설계자는 워크로드 특성을 분석한 뒤 어떤 성능 지표를 우선적으로 최적화할 것인지 결정해야 한다.
결론
처리량과 지연 시간은 컴퓨터 시스템 성능을 이해하기 위한 핵심적인 개념이며 서로 밀접하게 연결된 관계를 가진다. 처리량이 높은 시스템이 반드시 지연 시간이 낮은 것은 아니며, 두 지표 사이에는 구조적인 트레이드오프가 존재한다.
현대 컴퓨터 아키텍처는 이러한 특성을 고려하여 다양한 병렬 처리 기술과 예측 기반 실행 기법을 활용하고 있다. 결국 효율적인 시스템 설계를 위해서는 처리량과 지연 시간 사이의 관계를 정확하게 이해하고 워크로드 특성에 맞는 최적의 균형점을 찾는 것이 중요하다.