1. CPU, D-ram, SSD, HDD의 초당 연산 처리 속도 차이 비교
세로축인 OPS는 초당 처리 속도이다.
메모리(D-RAM)와 HDD는 10만 배 이상의 처리속도 차이를 보인다.
메모리와 SSD는 1000배의 처리속도 차이를 보인다.
2. SSD와 HDD의 순차 I/O, 랜덤 I/O 성능 비교
(1) 순차 I/O
에서는 성능적 차이가 크게 없다.
순차 읽기는 한 번에 연속된 많은 량의 데이터를 일괄적으로 읽는 것을 말한다.
A. 순차 I/O에서는 HDD의 물리적인 접근 속도가 SSD의 전기적 접근 보다 '월등히' 느리진 않다.
HDD에서 순차 I/O를 진행한다면 절차는 다음과 같다. (1)헤드를 읽어야 하는 데이터 시작점에 위치시키고, (2) 디스크를 회전시켜서 그냥 쭉 읽으면 된다. 즉 SEEK TIME과 Rotational Latency가 최초 한 번 말고 없는 것임.
최초 한 번의 물리적 접근만 해도 되기 때문에 이 접근 속도가 SSD의 전기적 접근과 비교해도 월등히 느리진 않다.
B. SSD는 실제로 더 빨리 읽었으나 인터페이스에서 병목이 일어난다. (SATA의 경우)
SSD는 HDD 자리를 대체하기 위해 만들어져서, 기본적으로 HDD가 쓰던 인터페이스를 그대로 이어쓰는 경우가 많다. 따라서 만약 SATA를 쓴다고 가정하면, SATA는 대역폭이 6Gps(= 750MB/s)로 한정되어 있다. SSD는 이보다 훨씬 많은 양을 한 번에 읽어내도 메인보드 또는 서버로 보낼 수 있는 양이 한정되어 있기에, 많은양을 한 번에 전송하는 순차 I/O에서 HDD에 비해서 성능이 확연히 빨라질 수 없다.
하지만 이 단점은 기술의 발전에 따라 극복되고 있다.
SSD 전용 프로토콜인 NVMe(비휘발성 기억장치 익스프레스)을 사용하면 SATA보다 훨씬 큰 대역폭으로 데이터를 전송할 수 있기에, NVMe SSD는 HDD보다 속도 면에서 수십배 빠르다.
C. 수치적 차이
사진 출저: SSD-성능비교-M2-SATA
항목 이름 | 의미 | 세부 설명 |
---|---|---|
SEQ1M Q8T1 | 순차 읽기/쓰기 (1MB 단위) / 큐 8개 / 쓰레드 1개 | 1MB 크기 블록을 연속된 주소에 순차적으로 읽고 씀. 큐 깊이 8, 쓰레드 1 |
SEQ1M Q1T1 | 순차 읽기/쓰기 (1MB 단위) / 큐 1개 / 쓰레드 1개 | 위와 같지만, 큐와 병렬성 최소 (더 현실적인 결과) |
RND4K Q32T1 | 랜덤 읽기/쓰기 (4KB 단위) / 큐 32개 / 쓰레드 1개 | 4KB 단위 블록을 무작위 위치에서, 병렬 큐 32개로 읽고 씀 |
RND4K Q1T1 | 랜덤 읽기/쓰기 (4KB 단위) / 큐 1개 / 쓰레드 1개 | 가장 기본적인 단일 요청/단일 쓰레드의 랜덤 I/O 성능 |
SATA SSD의 경우 HDD와 같은 인터페이스를 써서 수치 차이가 그렇게 안남. 반면 SSD 전용 프로토콜인 NVMe(비휘발성 기억장치 익스프레스) 를 쓴 경우 수치 차이가 월등히히 벌어짐을 볼 수 있다.
(2) 랜덤 I/O에서는 속도차이가 수십만 OPS로 벌어진다.
A. HDD는 랜덤 I/O에서 필요한 페이지에 접근하기 위해서 매번 물리적 시간이 필요하다.
- 매 접근마다 SEEK TIME(원하는 트랙에 헤더 갖다 대는 시간) + Rotational Latency (원하는 섹터가 나올 때까지 회전하는 시간)을 기다려야 한다. 추가학습에서도 이야기 했듯이 이 둘은 HDD의 주된 성능 병목 원인이다.
B. SSD는 물리적 접근이 없음 + 구조 상 랜덤 읽기 특화됨
트랜지스터 셀에 전기적 신호만 보내면 되어서 HDD식 기계적 접근이 없다.
필요로 하는 여러 데이터를 그 데이터가 속한 채널에 병렬적으로 요청 및 캐시 적재가 가능하다.
C. 수치적 차이
유형 | HDD | SATA SSD | NVMe SSD |
---|---|---|---|
랜덤 읽기 | 100 IOPS 내외 | 수만 IOPS | 수십만 IOPS |
월등한 차이를 보임을 알 수 있다.