서버를 열어보자

아키텍처 전체를 구상할 때는 먼저 서버라는 단위로 생각해야 함. 이번 장에서는 물리 서버 내부 구조에 대해 더 자세히 살펴본다.

물리 서버

서버 외관과 설치 장소

서버는 랙(Rack)이라는 것에 장착됨.

랙에는 서버 외에도 HDD 등의 저장소나 인터넷 및 LAN을 연결하기 위한 네트워크 스위치 등도 탑재돼 있다.

랙은 규격이 있다. (폭 19인치, 높이 한 칸에 4.5cm로 40~46개) 이 한 칸을 1U라고 하고, 서버 높이는 이 단위를 따름

전원이나 네트워크 케이블 배선 등은 모두 랙 뒷면에서 연결됨

서버 설치 시에는 서버 크기(U), 소비 전력(A), 중량(Kg)를 고려해야 함.

서버 내부 구성

컴포넌트를 연결하는 선을 버스(Bus)라고 한다.

CPU와 메모리는 물리적으로 직접 연결되어 있음

PCI Express 슬롯은 외부장치를 연결하는 곳. Xeon 확장 프로세서 아키텍처에서는 CPU가 PCI를 직접 제어한다.

CPU 중심으로 생각하면 USB 네트워크 인터페이스는 메모리에 비해 멀리 있음

BMC(Baseboard Management Controller)라는 컴포넌트는 서버의 H/W 상태를 감시하며, 독립적으로 움직인다.

CPU

Central Processing Unit의 약자. 서버 중심에 위치해서 연산 처리를 실시한다.

명령을 받아서 연산을 실행하고 결과를 반환하는 역할. 명령과 데이터는 기억 장치나 입출력 장치를 통해 전달됨.

이 CPU를 코어라고 하며, 하나의 CPU에 독립된 처리를 하는 여러 개의 코어가 존재하는 멀티 코어화가 진행되고 있음.

명령은 누가 내려? → OS

OS에는 누가 명령 내림? → OS에서 동작하는 웹 서버나 데이터베이스의 실체인 프로세스, I/O 입력 장치

메모리

명칭 그대로 기억 영역을 말한다.

CPU 옆에 위치하며, CPU에 전달하는 내용이나 데이터를 저장하거나 처리 결과를 받음.

메모리에 저장되는 정보는 영구성이 없다. 이런 결점에도 메모리 액세스가 매우 빠르게 이뤄지기 때문에 사용한다.

데이터 저장 시에 물리적인 모터 등을 구동하는 것이 아니라 전기적인 처리만으로도 데이터를 저장

사실, CPU 자체에도 메모리를 가지고 있음. (레지스터나 1차(L1)/2차(L2) 캐시라고 불림) 메모리에 비해 더 빠르지만, 용량이 매우 작다.

메모리 영역이 나눠져 있는 이유?메모리는 다단계 구조를 가지고 각각의 액세스 속도에 맞게 사용되기 때문에 CPU의 데이터 처리 속도를 줄일 수 있음

액세스 속도 때문. 캐시 메모리가 커질수록 액세스 속도는 느려지지만, CPU와 가까울 수록 처리 속도가 줄어든다. 때문에 캐시를 여러 단계로 배치하여 초고속으로 액세스하고 싶은 데이터는 L1 캐시, 준고속으로 액세스하고 싶은 데이터는 L2 캐시에 두는 형대로 만든 것

I/O 장치

I/O 장치는 데이터 입출력을 담당

하드 디스크 드라이브(HDD)

기록 영역으로, 서버에서는 메모리에 비해 CPU에서 떨어진 곳에 배치됨.

주로 장기 저장 목적의 데이터 저장 장소로 사용

메모리보다 처리 속도는 느리지만, 메모리는 전기가 흐르지 않으면 데이터가 사라지는 반면 디스크는 전기가 없어도 데이터가 사라지지 않음

물리적인 회전 구조를 통해 읽기/쓰기 처리를 하기 때문에, 메모리처럼 순식간에 액세스할 수 없다.

최근에는 기술이 발달해서 SSD(Solid State Disk, 반도체 디스크)라는 물리적인 회전 요소를 사용하지 않은 디스크가 사용됨

HDD가 많이 탑재되어 있는 하드웨어를 ‘스토리지(Stroage, 저장소)’라고 한다.

네트워크 인터페이스

서버와 외부 장비를 연결하기 위한 것으로 외부 접속용 인터페이스다

서버 외부 장비로는 네트워크에 연결된 다른 서버나 저장소 장치.

버스(Bus)

서버 내부에 있는 컴포넌트들을 서로 연결시키는 회선을 가리킨다. 버스에서 중요한 것은 어느 정도의 데이터 전송 능력을 가지고 있는가, 즉 대역이 어느 정도인가이다.

대역

IT 인프라에서는 데이터 전송 능력을 의미함. 스루풋(Throughput, 처리량)이라고도 부름.

대역 = 한번에 데이터를 보낼 수 있는 데이터의 폭(전송폭) * 1초에 전송할 수 있는 횟수(전송 횟수)

전송 횟수 = 1초 / 1 처리당 소요 시간(응답 시간)

버스 대역

CPU에 가까울수록 1초당 전송량이 큼. → CPU와 메모리는 매우 빠른 전송 능력이 요구되기 때문에 가까이 배치

버스 흐름에서 중요한 것은 CPU와 장치 사이에 병목 현상이 없어야 한다는 것.

Last updated