DO NOT DEFRAG YOUR SSD! (SSD, 조각모음 하지 마세요!)

 

요즘 HDD 대신 SSD를 사용하는 컴퓨터들이 늘어나고 있습니다.

특히 넷북이나 하이엔드 유저들에게 SSD만큼 군침도는 녀석도 많지 않을 겁니다

 임의 접근 속도가 빠르고 읽기 쓰기에 걸리는 시간이 일반적으로 사용하는 하드 디스크보다 빠르다는 장점 덕택이죠.

더군다나 요즘 낸드플래시가 대량생산되면서 점점 가격이 내려가는 추세이므로,

새로 컴퓨터를 구입하는 사람들은 SSD를 HDD 대신, 혹은 HDD와 같이 사용하는 것을 고려하고 있습니다.

  많은 분들이 SSD를 사용하다 보면 왠지 SSD의 속도가 느려지는 듯한 느낌을 받습니다. HDD를 사용하는데 익숙한 유저들은

이런 상황에 주저하지 않고 조각모음을 시키죠! 심지어 속도가 빨라졌다고, 자주 실행시키라는 블로그도 있었습니다!

  그런데 사실 조각모음은 전혀 성능향상에 도움이 되지 않습니다. 하드 디스크는 헤드가 디스크의 표면을 읽어야 하기 때문에

 단편화가 중요한 주제이지만, SSD는 반도체 소자이기 때문에 파일이 이곳저곳에 나누어 저장된다고 하더라도 성능에는 영향이 없습니다.

 아니, 오히려 SSD 컨트롤러는 파일을 이곳저곳에 나누어 저장해야 합니다.

 (이는 SSD는 쓰기 제한 횟수가 HDD에 비해 매우 적기 때문인데, 이는 뒤에 설명합시다.)

  SSD의 속도가 느려지는 것은 데이터 단편화 때문에 일어나는 것이 아니라, 컴퓨터의 파일 시스템이 동작하는 방식 때문에 일어나는 것입니다.

 현재 대부분의 파일 시스템은 HDD 위에서 동작하는 것에 최적화되어 있습니다. 
  그러한 최적화 중 하나는 파일을 삭제할 때 실제 파일의 내용을 삭제하는 대신,

파일들의 위치가 저장되어 있는 파일 시스템 테이블에서만 연결을 해제하는 겁니다. HDD에서는 이게 효과가 있습니다.

 하지만, SSD에서는 이게 문제가 됩니다.

 '낸드 플래시는 이미 값이 저장된 셀에 새로운 값을 쓰려면 기존에 저장된 내용을 반드시 먼저 삭제해야 합니다'. 

 유저들이 겪는 정체불명의 지연 현상은 바로 기존에 저장된 데이터를 삭제하는 딜레이입니다.

  위에 뭐라고 썼죠? SSD는 쓰기 제한 횟수가 HDD보다 적다고 말했지요? 이게 SSD의 가장 큰 단점 중 하나인데

,플래시 메모리의 각 셀은 데이터를 썼다 지웠다 할 수 있는 횟수가 제한되어 있습니다. 그리고 HDD에 비해서 상당히 적습니다.

이 횟수를 넘기면 그 셀에는 더 이상 데이터를 기록할 수 없게 됩니다.

 이걸 dead cell이라고 부르는데, 이 때문에 사용되는 기술이 wear-leveling이라는 겁니다. 

 "셀이 하나씩 죽으면 점점 용량이 줄어들게 된다. 그러니까 얘들이 한번에 뒈지게 만들자" 하는 겁니다

. 즉 각 셀의 쓰기 횟수를 비슷하게 맞추기 위해 여기저기에 데이터를 나눠 저장하도록 하는 겁니다.

 즉 디스크 단편화 현상은 SSD에서는 당연한 일이며, 이를 없앤답시고 디스크 조각 모음을 하는 것은 SSD의 수명을 극단적으로 단축시킵니다

. 조각 모음 자체가 쓰기 연산을 사용하는 일인데다가,

 제조사들이 SSD의 짧은 수명 그나마 오래 쓰라고 만들어 둔 wear-leveling이란 배려를 무력화시키는 것이니까요.

  예. 오랜만에 장문의 글을 썼네요. 뭐 요지는 이겁니다. 돈 많아서 SSD 정도는 또 사면 된다 하는 분은

 "우왕 ㅋ 빨라진거 같아" 하고 자위하면서 조각모음 하십쇼. 어차피 빨라지지는 않겠지만...

 

 

>>> 저만몰랐나요? 그렇다면 SSD 사용자는 램디스크가 필수군요^^

 

 

출처 http://azurespace.tistory.com/40