서버 - 하드웨어 장비 및 데이터의 흐름
물리 서버
서버 외관과 설치 장소
- 서버는 랙(rack) 에 장착됨
- 랙에는 서버 외에도 HDD가 정착돼 있는 저장소나 인터넷 및 LAN을 연결하기 위한 스위치 등도 탑재되어 있음
- 랙의 규격
- 대부분 랙의 폭은 19인치
- 높이는 한 눈금에 약 4.5cm로 40~46개 눈금으로 이루어져 있음
- 서버 높이의 단위 : 한 눈금당 1U(2U서버는 2눈금, 높이 약 9cm의 서버)
- 전원이나 네트워크 케이블 배선등은 모두 랙 뒷면에서 연결됨
- 서버 설치 시 중요한 정보
- 서버 크기(1U)
- 소비 전력(A)
- 중량(Kg)
- 서버 전면(Sun Server X3-2L 모델)
- 일반적인 서버는 옆으로 긴 형태
- 옆에 랙 마운트 레일(rack mount rail) 이 있어서 장롱 서랍처럼 설치 가능
- 전면에 HDD나 전원 버튼 등이 있음
- HDD는 교체하기 쉽게 되어 있어서 손으로 당겨서 꺼낼 수 있음
서버 내부 구성
- FAN 뒤에는 HDD가 있음
- PC 부품과 같은 종류가 들어가 있음
- 각 컴퍼넌트(부품)를 연결하는 선을 버스(bus) 라고 함
- CPU가 두 개 연결 되어 있고 그 옆에 메모리가 배치 됨
- CPU와 메모리는 물리적으로 직접 연결되어 있음
- PCI Express 슬롯 - 외부 장치를 연결하는 곳
- NIC(네트워크 인터페이스)
- CPU를 중심으로 HDD나 NIC는 메모리에 비해 멀리 있음
CPU
- CPU(Central Processing Unit) - 서버 중심에 위치해서 연산 처리를 함
- CPU는 명령을 받아 연산을 실행하고 결과를 반환
- 명령과 데이터는 기억장치나 입출력 장치를 통해 전달 됨
- 연산은 1초에 10억회 이상 실행 가능
- CPU를 코어 라고 하며, 하나의 CPU에 여러개의 코어가 존재하는 멀티 코어화가 진행되고 있음
- 코어는 각자가 독립된 처리 가능
- 명령이나 데이터는 기억 장치(메모리, HDD)에 있음
- 운영체제(OS)라는 소프트웨어에서 CPU에 명령을 내림
- 프로세스(OS상에서 동작하는 웹 서버나 데이터베이스)와 사용자 키보드, 마우스를 통한 입력으로 OS에 명령을 내림
- 키보드,마우스,프로세스 -> OS -> CPU
- 키보드나 마우스가 하는 처리를 끼어들기(interrupt) 처리 라고 함
메모리
- 기억 영역으로, CPU 옆에 위치함
- CPU에 전달하는 내용이나 데이터를 저장하거나 처리 결과를 받음
- 메모리에 저장되는 정보는 영구성이 없음
- 서버를 재시작하면 데이터가 사라짐
- 메모리 액세스가 매우 빠르게 이뤄짐
- 전기적인 처리만으로 데이터 저장 (물리적인 모터를 구동하지 않아도 됨)
- CPU 자체의 메모리를 레지스터, 1차(L1)/2차(L2) 캐시라고 부름
- 메모리보다 빠르지만 용량이 메모리보다 매우 작음
- 캐시를 여러 단으로 배치해서 대기 시간을 줄임
- L1, L2 캐시에 있는 데이터가 L3 캐시에도 존재함
- 다른 코어는 자신 이외의 캐시를 확인하지 않고 L3 캐시만 확인하면 됨
- 메모리 영역이 CPU안에 여러개 존재하는 이유
- 처리 지연을 줄이기 위해 가장 자주 사용하는 명령/데이터를 코어 가까운 곳에 배치
- 메모리를 이용하려면 메모리 컨트롤러를 경유해 CPU밖으로 나가야함(처리 지연- latency, 레이턴시)
- 고속 CPU에서는 이런 처리지연 조차 허락하지 않음
- 액세스 속도
- 일반적으로 캐시 메모리가 커질수록 액세스 속도가 느려짐
- 가능한 CPU 가까운 곳에 많은 캐시를 두기 위해 캐시를 여러 단계로 배치
- 초고속으로 액세스하고 싶은 데이터는 L1 캐시, 고속으로 액세스 하고 싶은 데이터는 L2 캐시에 두는 형태
- 처리 지연을 줄이기 위해 가장 자주 사용하는 명령/데이터를 코어 가까운 곳에 배치
- 메모리 인터리빙(memory Interleaving) - 데이터를 미리 CPU에 전달해서 처리 지연을 줄이는 메모리 기능
- 채널 : CPU와 메모리 간의 데이터 경로
- 뱅크 : 하나의 채널 안에서 하나 또는 그 이상의 메모리 묶음
- 최대 3개의 채널을 사용해서 데이터1을 요구하면, 데이터2와 데이터3도 함께 보내버림
- 대부분 데이터가 연속해서 액세스 된다는 규칙을 기반으로 만들어짐
- 메모리 인터리빙을 사용하기 위해서는 모든 채널의 동일 뱅크에 메모리를 배치해야함
I/O 장치
하드 디스크 드라이브(HDD)
- CPU와 (메모리에 비해) 멀리 떨어져 있으며 주로 장기 저장 목적의 데이터 저장 장소로 사용
- 메모리는 전기가 흐르지 않으면 데이터가 사라지지만, 디스크는 전기가 없어도 데이터가 사라지지 않음
- HDD 내부
- 자기 원반이 여러 개 들어 있는데, 이것이 고속으로 회전하고 레코드 바늘 같은 것을 사용해서 읽기/쓰기를 처리함(CD나 DVD와 같은 구조)
- 회전 구조 때문에 속도가 물리 법칙에 의해 좌우되며, 메모리처럼 순식간에 액세스 할 수 없음
- 일반적으로 수 밀리초에서 수십 밀리초 정도의 시간이 걸림 (메모리는 수~수십 마이크로초)
- 최근에는 SSD(Solid State Disk, 반도체 디스크)를 많이 사용함
- 물리적인 회전 요소를 사용하지 않는 디스크
- 메모리와 같이 반도체로 만들어짐
- 전기가 없어도 데이터가 사라지지 않음
- 메모리와 기억 장치 간 속도 차이가 거의 없음
- HDD가 많이 탑재된 하드웨어를 스토리지(Storage, 저장소) 라고 함
- 스토리지는 I/O의 서브 시스템이라고 불리는 장치
- 내부에 CPU와 캐시가 존재하고 수많은 HDD 외에도 여러 기능을 탑재
- 서버 I/O 시에는 HDD가 직접 데이터를 교환 하지 않고 캐시를 이용함
- 저장소 캐시는 CPU 캐시 이용 방법과 동일함
![](http://library.gabia.com/wp-content/uploads/2016/03/%EB%94%94%EC%8A%A4%ED%81%AC.png)
네트워크 인터페이스
- 서버와 외부 장비를 연결
- 외부 접속용 인터페이스
- 이더넷(ethernet) 네트워크 어댑터
- 서버 외부 장비로는 네트워크에 연결된 다른 서버나 저장소 장치가 있음
버스
- 서버 내부의 컴포넌트들을 서로 연결시키는 회선
- 버스가 어느 정도의 데이터 전송 능력을 갖고 있는지가 중요함
대역
- IT인프라에서 대역은 데이터 전송 능력을 의미함
- 한 번에 데이터를 보낼 수 있는 데이터의 폭(전송폭), 1초에 전송할 수 있는 횟수(전송 횟수) 로 결정 됨
- 전송 횟수
- 1초 / 1 처리당 소요 시간(응답 시간)
- 대역을 스루풋(throughput, 처리량) 이라고 부름
- 대역은 전송폭 * 전송 횟수
버스 대역
- CPU와 가까운 쪽이 1초당 전송량이 큼
- Sun Fire X4170 M2 기준으로 CPU-CPU 간은 12.8GB/s 전송
- 일상에서 접하는 대역으로 광랜 인터넷이 있음
- 최대 200Mbps = 25MB/s 대역으로 통신 가능
- 버스 흐름에서 CPU와 장치 사이에 병목 현상이 없어야 함
- 병목 현상(bottleneck): 데이터 전송이 어떤 이유로 막혀 있는 상태
'study > IT 인프라' 카테고리의 다른 글
프로세스&스레드, 커널 (0) | 2021.02.04 |
---|---|
Thread의 Process의 메모리 공유에 대한 문제점 (수정 중) (0) | 2020.02.16 |
인프라 아키텍처의 종류 (0) | 2020.02.10 |