본문 바로가기
Book

대규모 서비스를 지탱하는 기술 - (하드웨어 관점에서의) 메모리와 디스크

by Jordy-torvalds 2022. 7. 27.
반응형

메모리와 디스크

컴퓨터 내 기억장치와 속도차

아래 그림을 보면 위로 갈 수록 비용 대비 속도가 빨라지는 반면 용량은 줄어들고 밑으로 갈 수록 속도는 느려지는 반면 용량은 늘어난다.

SSD vs HDD 간 성능 차이는?

연속된 블록을 읽어들이는 순차 IO에서는 SSD가 HDD보다 약간 빠르거나 비슷한 정도이지만, 랜덤 IO일 때는 막대한 성능 차이를 보인다.(출처, Real MySQL 8장 인덱스)

HDD의 데이터 탐색 방법

 
 

HDD 내에는 데이터가 기록된 플래터(원판)이 있고, 이 원판으로 부터 데이터를 읽어들이는 헤드 등으로 구성됩니다. HDD의 데이터 탐색은 물리적인 원판의 회전과 헤드의 움직임(헤드 자체의 이동과 플래터에 뗏다 붙였다 하는 행위)를 통해 이뤄집니다.

이렇듯 물리적인 장치임에도 전기적인 장치인 SSD와 순차IO에서는 성능 차이가 작은 이유는 헤드의 이동없이 플래터의 회전으로 연속된 데이터를 읽을 수 있기 때문입니다.

참고로 HDD는 하나의 플래터를 부채꼴 모양으로 쪼개어진 섹터라는 단위로 나누어서 데이터를 저장 및 관리합니다.

SSD는 HDD처럼 부채꼴 모양으로 섹터를 나누지는 않지만 물리적으로 섹터를 나눠서 관리하며, 제품 벤더에 따라 그 크기를 조정하는 것도 가능합니다.

SSD의 랜덤 IO, 순차IO 성능은?

SSD의 경우 HDD처럼 물리적인 작업없이 전기적 신호로 데이터 읽고, 쓸 수 있긴 하지만 랜덤 IO와 순차 IO에 있어 성능 차이가 큽니다. 실제로 시중에서 판매되는 SSD의 제품 상세표를 봐도 확인할 수 있습니다.

순차 읽기/쓰기라고 표시된 것이 순차IO, 읽기/쓰기 IOPS 라고 표시된 것이 랜덤 IO 입니다.

참고로, 500KMB/s 로 환산하려면 일반적인 윈도우의 디스크 할당 크기인 4KB를 곱하면 되며 그렇게 했을 때 2,000 MB/s 정도가 나옵니다.

디스크 할당 크기(클러스터)
디스크 저장의 최소 단위를 말합니다.
만약 디스크에 1 byte만 쓰고 싶어도 파일 할당 크기가 4KB 이므로 사실상 4KB가 점유되게 됩니다.
이 크기는 파일 시스템에 따라 달라질 수 있습니다.

OS 레벨에서 속도차를 보완하는 방법

OS는 디스크의 CPU, RAM 대비 느린 속도의 보완을 위해 1 byte 씩 읽는 것이 아니라 한 번에 4KB 씩 읽어서 메모리에 쌓도록 동작하게 함으로써 비슷한 데이터를 최소한의 플래터 회전으로 찾을 수 있게 한다.

전송속도, 버스의 속도차

메모리와 디스크 간에는 데이터 읽기/쓰기의 속도 차이도 크지만 데이터를 전송하는데 있어서도 속도 차이가 큽니다. 컴퓨터 내 구성요소 간에 통신은 버스를 통해서 이뤄지는데, 디스크에서 메모리로 보내는 전송 속도와 메모리에서 CPU로 보내는 전송 속도의 차이가 큰 것 입니다.

만약 메모리와 디스크의 성능이 좋더라도 버스의 성능이 좋지 못하다면 제대로된 성능이 나오지 않을 수 있습니다.

반응형