[수정]

최대한 글 내용을 간결하게 (중간에 쓸데없는 글들 삭제) 다시 수정하였으며, 일부 본문 내용과 전혀 관계없는 사담에 비슷한 글 또한 모두 삭제했습니다. 

사실 SSD 잡담이라는 글을 쓰게 된 동기는, Q&A에서 답을 달다보니, 비슷한 류의 질문이 이틀이 멀다하고 올라오고, 또한 거기에 거의 비슷한 답변을 하는 제 모습을 보고 이건 서로 시간 낭비다 싶어, 순전히 이기회에 SSD에 대한 본인의 개인적인 *생각*과 *주장*을 자유롭게 한번 써보자였습니다.

즉! 제글은 그냥 상식적인 수준에서 판단으로 내린... 그냥 *자유로운 글* 뿐입니다. 혹시 제글에 오류가 있을지라도 가볍게 지적해주시거나, 그냥 무시하면 될거 같습니다. 


[본문]

사실 저번 글에 왠만한걸 다 써버려서, 대략 남은게 기술적인 세부 내용과 윈도우즈 (7)에 근거한 SSD 최적화 정도만 있을거 같습니다. SSD의 자세한 동작 원리까지 쓸수 있는 여력이 됬으면 좋겠습니다만 아직은 장담하지 못하겠습니다. (하지만 최소한 SSD 동작중 쓰기의 어려움에 왜 있나와 트림 코맨드의 필요성등에 대해서는 노력해보겠습니다. 그런데 제 기억으로는 해당 내용에 대해 KBench인가 IDG인지에 한번 기술이 되었던것도 같습니다...)

 

오늘의 주제는 다음과 같습니다!

 

Randomness is the enemy of rotational stroage!

 

HDD 대비 SSD를 빛나게 하는 항목이 바로 랜덤 읽기/쓰기라고 강조했는데요. 오늘은 좀더 이것에 대한 간략적인 기술적인 내용과 몇가지 수치, 그리고 애플리케이션 구동과 윈도우즈 OS와 같은 곳에서 얼마만큼 효용성을 주는지 아주 쬐금 자세히 이야기 하도록 하겠습니다.

 

 

[1] 랜덤 억세스는 왜 중요한가?

 HDD라는게 쓰인지가 너무나 오래되서 한번쯤은 다들 실제 모양도 보셧고, 심지어는 어떻게 동작하는지도 아주 자세히 아시는 분도 계실줄 믿습니다. (어쩌면 이곳에 실제 관련 개발 업무를 하고 계시는 엔지니어 분들도 있을거라 생각됩니다)

 

혹시나 모르시는 분들을 위해 간단하게 설명드리고자 그림을 첨부하면 다음과 같다고 합니다.

1.jpg

데이타가 저장되는 원통 모양의 platter라는 것과 그 위를 호버링하는 암과 플래터로부터 직접 데이타를 읽어드리는 헤드로 구성되어 있다고 합니다.  (따라서 동작중에 노트북을 떨어트리는 경우 운이 없으면 헤드가 플래터를 물리적으로 손상시켜서, 소중한 데이타가 완전 사망 하는 경우가 발생한다고 합니다) 

 

즉 어떤 데이타가 필요하게 되는 경우, 반드시 플래터의 데이터가 위치한 부분을 암의 헤더가 접근할수있도록 플래터를 회전(spin, mechanical movement)시켜야 합니다.  => 물리학이나 전자기학에 대해 자세히는 모르지만 상식적인 수준에서 전기적인 신호의 흐름 (SSD의 접근 방법)과 물리적인 모터의 힘에 의해 움직이는 플레터의 속도 차이는 아마 크게 차이가 날것입니다.

 

결과적으로 SSD의 4KB 랜덤 읽기(대략 0.1msec)는 보통의 HDD (10msec)의 대략 100배정도의 차이가 납니다!!! ==> 반복해서 나오는 SSD의 최고 강점!!

 

Random Read Latency 에 대한 좀더 정확한 수치적 자료는

인텔 X25-M: 0.11ms (worst or best?)

벨로시랩터: 6.83 ms (best !)

 

==> 여튼 다시 한번 강조드리지만 벨로시렙터는 HDD 중 best of best 인 제품입니다. 즉 대부분의 사람들이 사용하는 7200rpm 하드들이나 노트북에서 사용되는 5400rpm 하드를 생각해본다면 보통 10msec 정도라고 보면 될거 같습니다.

 

==> 또 한가지!! 저거 인텔만 저리 빠른거 아냐? 라고 생각하실수도 있는데 인텔이 독보적으로 빠른것은 4KB 랜덤 쓰기입니다.  즉 대부분의 SSD는 0.1ms 정도라고 생각하시면 대략 맞을겁니다. (제 지난글에 대해 피드백 받은 내용으로 고민했던 부분이라서 강조드립니다)

 

==> 또한 SSD의 경우 어떠한 경우라도 0.1ms의 constant 시간이 요구되지만, 벨로시 랩터의 6.83은 가장 최고의 속도를 낼때입니다.

 

 

즉 SSD를 사용하니까 포토샵 클릭했더니 순식간에 열리더라 (애플리케이션 구동시 유리)..  또는 인터넷 창 열고 워드도 치고 포토샵도 하는데 전혀 느려지지 않더라 (멀티태스킹시 유리)... 등의 찬사를 쏟으시는 분들이 많습니다. 


 

실제 SSD사용시 애플리케이션 구동시간이 대략 50%정도는 빨라진다고 합니다. 또한 시대는 점점 멀티코어의 시대로 흘러가고 있습니다. 코어2듀어, 쿼드 CPU 그리고 최근 GPU들은 무려 256개 이상의 코어가 병렬로 동작합니다. 다시 말하면, 이전에 비해 더 많은 데이타를 *동시*에 끌어다 쓴다는 이야기입니다.

 

점점 세상은 HDD에겐 이리저리 열심히 돌아야되는(rotating) 힘든 삶을 요구하는데 반해, SSD에겐 점점 랜덤 억세스의 장점을 극대화할수 있는 환경으로 변해가는거 같습니다.

 

 

좋은 예인지는 모르겠으나,

* 집배원이 아파트와 같이 1층에 여러 집의 우편함이 있는 곳에서 특정집에 우편을 집어넣을때....이럴때 어떤 집이든 똑같은 시간에 우편을 다 넣을수 있을거라 생각합니다. (팔만 뻗으면 되니까) ==> 따라서 가방에서 아무 우편이나 손가는대로 꺼내서 호수만 확인하고 휙휙 집어넣으면 되겠지요..

 

* 반대로 만약 집배원이 일일이 집집마다 돌아다니면서 배달을 해야되는데, 이 경우 101-102-103-104 이런식으로 순차적으로 배달이면 쭉 순서대로 돌면서 우편을 넣으면 좋겠지만, 108-101-107-102호 이런식이라면 즉 이동거리가 매우 길어지는 (Latency 가 증가) 하는 부분이 되겠습니다. 저기 복도 끝까지 갔다가 다시 입구로 와서 다시 복도 끝으로... (즉 데이타의 연속성이 매우 중요해짐)

 

 

[2] 아 그래서, HDD는 그래도 연속 읽기는 좀 하는데, 랜덤 억세스에는 정말 취약하군요.

 

즉, HDD를 효율적으로 이용하는 방법중에 하나가 바로 내가 읽어야되는 데이타를 연속적으로 배열하는 (즉, 디프레그멘테이션) 것입니다. 가끔씩 조각모음을 하게되면 그래도 조금 빠르게 느껴지는 이유가 여기에 있습니다. 즉 랜덤 억세스를 최소화하여 그래도 HDD도 좀 잘하는 분야인 연속 읽기가 가능하도록 데이타를 재배치하는것...

 

많은 분들이 컴퓨터가 처음엔 빠르다가 쓰면 쓸수록 점점 느려져라고 말씀하시는것중에 하나가 단편화(프레그멘테이션)에 따라 데이타의 렌덤 억세스가 증가하기 때문일수도 있습니다. 

 

또 한가지 HDD도 에이징에 따른 성능 저하가 발생하는데요... 그것은 데이타를 쓰면 쓸수록 플래터 안쪽 부분에 데이타가 저장되어갑니다. 즉 그림과 같이 바깥쪽 부분이 다 채워지기 시작하면 점점 안쪽에 데이타가 저장이 됩니다.

 

 

2.jpg

플래터가 스핀하는것은 물리학적으로 암이 a)와 b) 부분을 회전한다고 생각해도 큰 무리가 없을거 같습니다. 하지만 a)에 기록된 데이타는 10개이고 b)에 기록된 데이타는 5개라면, 같은 시간에 a)가 2배 많은 데이타를 읽었고, 결국 2배 빠른 억세스 속도를 보여주게 됩니다. (물리학적으로 호가 더 큰쪽이 더 많은 데이타를 저장하겠지요^^?)

 

즉 점점 안쪽으로 데이타가 쌓여갈수록 또한 그러한 데이타를 읽어야될 필요가 생길수록 억세스 속도는 떨어지게 되는 것입니다. (그래서 아까 1번에서 벨로시랩터의 경우 best 라고 표기)

 

 

이러한 원리를 이용해서 파코즈 같은 곳에 하드코어 유저들은 아주 오래전부터 플래터 자르기라는 기법을 통해 HDD의 가장 빠른 부분인 가장 바깥쪽으로 OS 관련 파일을 설치함으러서 윈도우즈 시동시 지렁이 숫자를 줄이거나 실제 사용시 좀더 빠른 체감 속도를 얻기위해 극강의 튜닝까지 도전하게 됩니다.

 

하지만, SSD 사용자의 경우 이런것은 큰 의미가 없겠지요? 그리고 또한 윈도우즈 7의 경우, OS 설치가 SSD인 경우 디프레그멘테이션이 자동으로 비활성화(disable)된다는 것도 왜 그런지 이해가 되시겠죠즉 SSD에서는 HDD에서 수행한느 디프레그멘테이션이라는게 큰 의미가 없습니다.

 

아 오늘은 SSD보다는 HDD 이야기를 더 많이 한듯합니다만, 결국 하고 싶은 이야기는 HDD 대비 SSD의 가장 큰 장점을 바로 알자는 것입니다.

 

하지만 오늘 본문에서 밝혓듯이, SSD의 경우 HDD 대비 가장 뛰어난 점은 랜덤 억세스이며, 특히나 랜덤 읽기는 대부분 SSD가 거의 비슷한 성능을 보입니다 (그래서 대부분의 리뷰자료에서 구지 언급을 하지 않습니다. 따라서 대략 자료들이 랜덤 쓰기로 자웅을 겨루는 듯한 인상이 있습니다..) 


또한 왠만한 SSD의 경우 여전히 HDD에 비해 랜덤 쓰기 또한 매우 빠르며....기본적으로 랜덤 쓰기는 응용프로그램 또는 OS가 자체적으로 생산하는 수많은 임시파일/로그 파일등에 좀더 관련이 있다고 생각됩니다. (즉 애플 구동과는 크게 연관이 없습니다). 


추가적으로 이러한 면에서 OS X가 윈도우즈보다 SSD에는 더 좋다고 합니다. 상대적으로 임시파일이나 로그수가 적다고 하더군요.. 윈도우즈 7에서는 뭔가 개선택이 있겠지요? 특별히 SSD에 대한 여러가지 고려사항을 넣은걸로 알고 있습니다 (다음에 좀더 자세히...)

 

 

다시한번 밝히지만 여러분이 지금 선택하시고 사용하시는 SSD가 가장 최고의 SSD입니다!!