DB에서 HDD와 SSD의 차이

양시준·2022년 3월 27일
1

TIL

목록 보기
16/21

개요

SQLP를 공부하면서 데이터가 모여있어야 (클러스터링 팩터) 처리 속도가 빨라진다는 내용이 많이 있었다.

그 이유는 HDD에서 물리적 I/O가 느린 이유는 데이터를 찾을 때 HDD에서 원하는 찾을 때 돌아가는 플래터에서 헤드가 값을 읽기 때문에 데이터가 서로 떨어져 있다면 회전이 자주, 오래 걸리기 때문이라고 설명하고 있었다. 하지만 SSD를 사용하는 경우는 설명하지 않았다.(HDD의 특성 상 물리적 이동이 필수적이지만 SSD는 순수 전자식으로 작동하기 때문에 랜덤I/O가 빠르다.)

이 책이 쓰인 시점이 10년을 거의 넘었고, 그 때에는 SSD가 잘 사용되지 않은 것으로 알고 있다. 하지만 지금은 AWS의 RDS를 사용할 때도 SSD를 기본으로 지원하고, 요즘 사용하는 컴퓨터에도 모두 SSD를 사용한다.

그래서 "SSD를 사용하면 클러스터링 팩터를 크게 고려하지 않아도 될까?" "그럼 책에서 설명하던 것처럼 물리적 I/O를 기피하지 않아도 되지 않을까?" 하는 생각으로 조사해 보았다.

조사하면서 나온 결과는 SSD를 사용하더라도 물리적 I/O는 논리적 I/O보다 느리고, 특히 Random I/O는 Single block I/O 방식이므로 매번 발생하는 오버헤드 때문에 기피된다는 것이다.

하지만 위의 결과 외에도 저장장치로 SSD/HDD를 사용하는 이유와 장단점을 알게 되었고, 이 사실이 흥미로워서 기록해 보았다.

SSD/HDD를 사용한 DBMS 성능 차이

참고 : SSD를 쓰면 DBMS가 빨라질까?

위 글을 보면 알 수 있듯이, Buffer size가 충분하다면 어느 저장장치를 사용하든 큰 차이가 없다.

다만 Buffer size가 부족한 경우 TPS, 초당 I/O 처리율에서 SSD가 더 뛰어난 성능을 보여준다. 하지만 Buffer size를 늘리는 것이 비용에 비해서 성능을 더 올릴 수 있다.

결론적으로, SSD를 사용하는 것보다 HDD + 높은 Buffer size가 비용 면에서 좋은 선택이지만 Buffer size를 늘리는 것이 불가능한 경우 SSD를 사용하자.

보관 관점

SSD

데이터 소실 가능성

플래시 메모리를 사용하는 모든 저장장치가 가지는 단점으로, 2~5년 이상 전력이 장기간 공급되지 않으면 데이터 소실 될 가능성이 크다.

복구 불가능

HDD가 전기적/논리적 오류 발생으로 인해 고장이 나더라도 일부분이지만 복구가 가능한 것에 비해서 SSD는 복구 가능성이 아예 존재하지 않는다.

다만 HDD나 다른 저장장치들 역시 시간이 지나거나 사고로 인해 데이터를 잃어버릴 수 있다는 점에서 큰 단점은 나다.

높은 가격

현재 HDD에 비해서 높은 가격을 형성하고 있으며, 대량의 데이터를 저장해야 하는 경우 비용 문제가 발생할 수 있다.

HDD

긴 데이터 보관 기능

SSD에 비해서 더 긴 데이터 보관 기간을 가지는데, 약 5~10년 정도다.

사실 장기적인 데이터 보관 측면에서는 저장 용량/기간이 더 뛰어난 자기테이프가 있다.
하지만 자기테이프는 데이터를 읽고 쓰는 속도가 매우 느려서 오직 백업/장기간 저장용도로만 쓰인다.

비교적 싼 가격

SSD에 비해서 싼 가격을 가진다.

데이터 복구 가능성

상황에 따라 복구가 불가능한 상황도 있지만 일부분 복구가 가능하다.

하지만 데이터를 저장할 때 불확실한 복구에 의존하는 것은 매우 위험한 행동이다. 백업을 자주 하여 HDD 복구가 필요없게 하자.

속도 관점

SSD

빠른 Random I/O

HDD에 비해 물리적 이동이 불필요한 SSD는 Random I/O 속도가 더 빠르다.

HDD

느린 Random I/O

플래터 회전과 디스크 암 이동(물리적 이동)이 필수적인 특징을 가지고 있다.

이 때문에 군집되어 있지 않은 여러 데이터에 개별적으로 접근하는 상황에서 느리다. (물리적 이동을 제외하면 SSD와 데이터를 읽는 속도는 큰 차이가 없다.)

결론

여러 글을 읽어본 결과, 성능 면에서는 Buffer size를 높이는 것이 제일 좋고, Random I/O와 같은 읽기/쓰기가 자주 일어나는 곳에 부분적으로 SSD를 사용하는 것이 추세인 듯 하다.

하지만 비용이 문제되지 않는다면 전부 SSD로 사용하는 것도 큰 문제는 아닐 듯 하다.

더 성능이 뛰어나며, 짧은 데이터 보관 기간/복구 불가능으로 인한 문제는 어차피 HDD도 마찬가지로 백업이 필요했었고, 주기적으로 장치를 갈아줘야 했던걸 생각하면 상관 없을 것 같다.

여담

그냥 순수하게 궁금해서 찾아본건데 명확하게 설명해주는 글이 없어서 어쩌다 보니 외국 사이트까지 찾아가고, SSD와 HDD의 원리와 장/단점에 대해서 공부하고 있었다...

SSD의 등장으로 인해서 HDD는 자리가 애매해졌고, SSD의 성능이 발전할수록 설 자리를 잃을 것 같다.

데이터 저장 측면에서는 저장 용량/기간 등에서 더 우월한 자기테이프가 있고, 속도 측면에서는 SSD가 좋으니 특수한 상황에나 쓰이지 않을까 싶다.

이 글에서 DBMS에 부하 발생기를 사용해 성능 계산하는 부분이 재밌어 보여서 나중에 한 번 해볼 생각이다.

참고

0개의 댓글