수평적 확장은 단위 처리 성능에도 악영향을 줍니다. 클라이언트가 어떤 메시지를 처리했는데, 그 메시지를 처리하기 위해 서로 다른 서버 1 → 2 → 3을 거쳐야 한다고 가정해 봅시다. 이때 메시지를 처리하는 데 소요되는 시간은 서버 1 → 서버 2, 그리고 서버 2 → 서버 3을 거치는 데 걸리는 시간입니다.
다시 말해서 메시지 하나를 처리하는 데 다음 과정이 반복됩니다.
유저 프로세스 → 커널 → 디바이스 → 회선 → 라우터 → 회선 → 디바이스 → 커널 → 유저 프로세스
이 과정에서 버퍼링으로 지연 시간이 발생합니다. 게다가 TCP 네트워크의 특성상 Nagle 알고리즘이 작용하거나 서버 간 통신 자체가 과부하를 일으키면 원치 않는 지연 시간이 추가로 발생할 수도 있습니다.
결국 수평적 확장은 단위 처리 성능이 수직적 확장보다는 느립니다. 그럼에도 이 모두를 상회하는 장점은 총 처리량입니다. 수직적 확장은 처음 언급했던 하드웨어 성능의 한계 때문에 더 이상 올라가지 못합니다. 하지만 수평적 확장은 그러한 제약 없이 늘린 서버 대수만큼 서버의 총 처리량이 증가합니다.
수직적 확장은 단위 성능과 구조 측면에서 유리하지만 확장성에 한계가 있습니다. 수평적 확장은 그 반대이지만, 확장성을 결국 해결합니다. 많은 대용량 서버에서는 수평적 확장이 고려되어 설계되지만, 개발의 경제성과 성능을 위해 실제로는 수평적 확장과 수직적 확장을 혼합해서 설계됩니다. 자세한 것은 9장 분산 서버 구조에서 설명하겠습니다.