핵심 인사이트 (3줄 요약)
- 서버 성능을 올리는 방법은 여러 대를 옆으로 붙이는 스케일 아웃(Scale-Out)과, **서버 한 대의 부품(CPU, RAM)을 거대하게 펌핑하는 스케일 업(Scale-Up)**이 있다.
- 스케일 업 서버는 메인보드 1장에 물리적인 CPU 칩(Socket)을 2개 이상 꽂는 다중 프로세서 시스템(SMP, NUMA) 구조를 가진다.
- 이때 CPU들끼리 "네가 가진 메모리 값 좀 줘"라며 실시간으로 캐시 일관성(Coherence)을 맞추며 통신해야 하므로, 병목을 막기 위해 UPI(Intel), Infinity Fabric(AMD) 같은 초고속 포인트 투 포인트(P2P) 시스템 버스가 마더보드에 깔리게 된다.
Ⅰ. 스케일 업(Scale-Up) 구조의 탄생: 더 큰 심장이 필요해
일반 PC에는 CPU가 들어가는 네모난 구멍(소켓, Socket)이 1개입니다. 하지만 거대한 오라클(Oracle) 데이터베이스나 SAP 같은 엔터프라이즈 시스템은 쪼개서 분산 처리(스케일 아웃)를 하기가 매우 어렵습니다. 장부가 여러 개면 정합성(ACID)을 맞추다 시스템이 터져버리기 때문입니다.
결국 **"서버 1대를 무지막지하게 크고 똑똑하게 만들자!"**는 스케일 업 전략이 필요했습니다. 그래서 메인보드 한 장에 2개(2-Socket), 4개(4-Socket), 심지어 8개의 CPU를 나란히 꽂고, 1대의 컴퓨터 안에 수 테라바이트(TB)의 RAM을 때려 박게 되었습니다.
📢 섹션 요약 비유: 100톤짜리 바위를 끌어야 합니다. 오토바이 100대를 밧줄로 묶어서 끄는 것(스케일 아웃)은 밧줄이 엉키고 운전수끼리 호흡이 안 맞아 포기했습니다. 대신 괴물 같은 엔진 8개를 단 하나의 거대한 초대형 트랙터(스케일 업)를 만들어 통째로 끌어버리는 전략입니다.
Ⅱ. 스케일 업의 딜레마: NUMA (불균일 메모리 접근)
CPU 4개를 꽂았을 때 심각한 아키텍처 문제가 발생합니다. "메모리를 어디에 꽂을 것인가?"
- 과거 (UMA, 균일 메모리 접근): 메모리를 중앙에 모아두고 CPU 4개가 하나의 버스를 통해 접근했습니다. 버스 병목(Traffic Jam) 때문에 CPU 4개가 1개일 때보다 오히려 느려졌습니다.
- 현재 (NUMA, 불균일 메모리 접근): 각 CPU 바로 옆에 자기 전용 메모리(Local Memory) 뱅크를 달아줍니다.
- CPU 1이 자기 옆에 있는 메모리(Local)를 읽을 때는 빛의 속도입니다.
- 하지만 CPU 1이 CPU 2의 옆에 꽂힌 메모리(Remote Memory)를 읽으려면, CPU 1과 CPU 2를 연결하는 징검다리(시스템 버스)를 건너가야 하므로 속도가 2배 느려집니다.
이 거리의 차이(불균일)를 극복하기 위해, 멀티 CPU 사이를 이어주는 초광폭의 전용 고속도로 버스가 필수적으로 요구되었습니다.
📢 섹션 요약 비유: 4명의 천재 요리사(CPU)가 한 주방에 있습니다. 도마(메모리)를 정중앙에 하나만 놨더니 서로 칼질하려다 싸움이 났습니다(UMA). 그래서 각자 개인 도마를 줬습니다(NUMA). 문제는 1번 요리사가 2번 요리사 도마에 있는 당근을 가져올 때 시간이 걸린다는 것입니다.
Ⅲ. 초고속 시스템 버스: QPI/UPI 와 Infinity Fabric
이 CPU와 CPU 사이를 잇는 징검다리 버스는 극도로 진화해 왔습니다.
- 과거의 FSB (Front Side Bus): 모든 CPU가 버스 하나를 공유하여 교통체증이 끔찍했습니다.
- Intel의 QPI $\rightarrow$ UPI (Ultra Path Interconnect): 버스 공유를 포기하고, CPU 1과 CPU 2를 1:1로 직접 연결(Point-to-Point)하는 전용 차선을 수십 개 뚫어버렸습니다. 1초에 수십 GB의 데이터와 캐시 일관성 검사 메시지(Snooping/Directory)가 이 선을 타고 흐릅니다.
- AMD의 Infinity Fabric (xGMI): 칩렛(Chiplet) 구조를 서버 전체로 확장하여, 소켓 안의 작은 코어들을 잇던 고속도로를 칩 바깥으로 빼내어 소켓과 소켓 사이까지 완벽하게 이어주는 하드웨어적 일체감을 달성했습니다.
4-소켓 NUMA 시스템 버스 (ASCII)
┌─── CPU 1 ───┐◀──(UPI 고속 통신망)──▶┌─── CPU 2 ───┐
│ + Local RAM │ │ + Local RAM │
└──────┬──────┘ └──────┬──────┘
│ │
(UPI 고속 통신망) (UPI 고속 통신망)
│ │
┌──────▼──────┐ ┌──────▼──────┐
│ + Local RAM │ │ + Local RAM │
│ CPU 3 │◀──(UPI 고속 통신망)──▶│ CPU 4 │
└─────────────┘ └─────────────┘
📢 섹션 요약 비유: 개인 도마를 준 요리사들 사이에 '초고속 진공 튜브(UPI/Infinity Fabric)'를 거미줄처럼 설치했습니다. 1번 요리사가 튜브에 손을 넣으면 0.001초 만에 2번 요리사의 당근을 집어올 수 있는 1:1 직통 터널입니다.