디스크 조각 모음

1 개요

하드디스크 최적화 프로그램.

2 작동 원리

  • ■■■■■■■■■■■■■□□
15MB의 공간에 4개의 파일이 이와 같은 형태로 저장되어 있다고 가정하자. 한 칸은 1MB를 나타낸다.
  • ■■■■■■■■■■■■■■□
1MB짜리 검은색 파일은 별 이상 없이 저장되었다.
  • ■■■■■■■□□■■■■■□
이후 초록색 파일이 삭제된 상태에서 새로운 파일을 저장하게 되면...
  • ■■■■■■■■■■■■■
보라색 파일은 파편화가 일어나게 된다.
  • □□□□■■■■■■■■■
추가로 분홍색 파일과 검정색 파일을 삭제하였다.
  • ■■■■■■■■■■■■■
이 상태에서 갈색 파일을 저장하려고 하면 이쪽도 파편화가 된다. 결과적으로 파일은 4개지만, 액세스 횟수는 6번이 되어 50%나 일을 더 해야 하는 상황이 된다.
  • ■■■■■■■■■■■■■■■
이걸 조각 모음을 통해 이런 상태로 정렬하면 액세스 횟수가 정상화된다.

단, 이 작동 원리는 예시로만 봐 두자. 실제로 위와 같은 상태, 즉 디스크가 꽉 찬 상태에서는 디스크 조각 모음이 안 된다. 조각 모음을 할 때는 파일을 임시로 다른 곳에 복사한 후 원래 파일을 지우기 때문에 여분의 공간이 필요하다.

3 상세

대부분의 OS에 기본으로 포함하고 있는 프로그램이다. 하드디스크SSD같은 저장장치에 파일 저장 시 동시 작성, 동시 입출력, 저장 공간 부족 등 여러 요인으로 순차적으로 저장되지 않는 경우가 생긴다. 즉 파일이 저장장치 또는 OS의 문제로 인해 여러개로 쪼개져서 이곳저곳에 흩어져서 저장되는 것을 말한다, 이런 것을 파편화라고 부른다. 파편화가 발생한 파일을 읽기 위해서는 저장장치가 여기저기 흩어진 조각들을 모두 찾아 읽어야 한다. 필요한 파일은 하나인데, 막상 읽을 때는 더 작은 용량의 여러 파일을 읽는 효과가 발생하여 실행 속도가 느려지는 것이다. 이러한 파편화된 파일을 디스크 조각 모음을 이용하여 파일을 정상적인 한 덩어리로 모아준다.

기본 프로그램이 아닌 전문적인 조각 모음 프로그램은 어느 수준의 작업을 할지 정할 수 있다. 간단히는 가장 큰 조각을 그 자리에 둔 채 이리저리 흩어진 작은 조각들을 찾아서 붙이는 방식, 파일을 한 덩어리로 이어붙인 후 디렉토리와 파일명의 순서대로 정렬시키는 방식, 사용 빈도가 높은 시스템 파일은 읽기 속도가 빠른 외측에 몰아놓는 방식 등 세세한 옵션이 있다.

조각난 파일이 많고 조각 모음과 재정렬의 옵션이 높을수록 작업 시간이 길어지지만, 조각 모음 프로그램에 따라서도 작업 시간이나 조각 모음 효율에 큰 차이가 난다.

조각 모음을 할 때는 최대한 종료할 수 있는 프로그램은 다 닫은 후에 실행해야 속도와 안정성에 좋다. 상당수의 프로그램이 작동할 때 HDD를 사용하고, 조각 모음과 동시에 다른 프로그램을 구동하면 HDD의 부하가 높아지기 때문이다.

과거 하드디스크의 속도가 떨어지던 시절엔 컴퓨터의 속도를 좌지우지하는 요인 중 하나였다. 그러나 캐시 메모리의 대형화와 자기 디스크에 대한 기술 발전 등으로 처리 속도나 저장 용량 등의 성능이 급속히 향상되고 디스크 조각 모음이 거의 불필요한 SSD가 널리 보급되어 가는 오늘날에는 중요성이 다소 떨어졌다.

4 특징

데이터를 불러올 때의 읽기속도 향상과 하드디스크의 수명과 읽기 작업 시 발생하는 소음을 줄일 수 있다.

파편화 현상은 토렌트 등의 P2P 공유 프로그램 사용 시 특히 심하게 나타난다. 공유 파일을 하드디스크에 내려받는다면 3~4개월에 한 번 정도 조각모음을 하자. P2P 프로그램의 방식에 따라 편차가 있지만 보통 내려받는 전송 속도와 리소스 점유율에서 상당한 이득을 볼 수 있다. 단 캐시 파일이 깨질 가능성이 있으므로 너무 자주는 금물. P2P 프로그램이나 OS에서 sparse 파일 모드를 지원하지 않는다면 해당 파일 용량을 미리 할당하고 시작하면 깨짐 현상을 최소화할 수 있다.

조각 모음을 자주 하면 저장장치의 수명이 줄어든다는 주장이 있다. 하드디스크의 경우에는 플래터, SSD의 경우에는 플래시 메모리에 데이터가 저장되는데 이 저장장치는 영구적인 것이 아니라 읽고쓸 수 있는 수명이 정해져있고, 조각모음을 하면 저장장치에 읽고쓰기를 반복하기 때문에 이 횟수만큼 수명이 줄어든다는 것. 하지만 반대로 하드디스크에 조각 모음을 하면 데이터가 연속으로 배치되어 데이터를 읽을 때 헤드가 이동하는 거리가 대폭 줄어드므로 적절하게 이용하면 장기적으로 수명이 늘어난다고 볼 수 있다.[1]

결론을 말하면 자주해줄 필요는 없지만 꾸준히 신경쓰는 편이 하드디스크 수명에 더 좋다. 조각 모음은 하드디스크에 엄청난 과부화를 발생시키기 때문에 파편화가 심각하게 진행되었다면 한번에 조각 모음을 다소 텀을 두고 나누어서 조각 모음을 진행하는 편이 좋다.

매니지먼트 기능을 쓰지 않는다면 일반적으로 3개월에 1회 정도가 적당하다.

5 플래시 메모리 저장매체에서

물리적 시간 소요가 발생하지 않는 플래시 메모리형 저장매체는 사용하지 않기를 권한다.

플래시 메모리 기반 매체 역시 파편화가 발생한다. HDD는 기계적인 방식을 사용하여 파일에 접근하므로, 파편화가 심할수록 속도가 느려지지만 플래시 메모리 매체는 파일에 접근할 때 전자적인 방식을 사용하기 때문에 엑세스 시간이 매우 짧아 파편화에 따른 속도 차이가 거의 없다. 이는 파일이 저장된 위치를 순간적으로 찾아내는 성능지표인 랜덤 액세스를 보면 알 수 있다. 하드디스크는 보통 9~20ms, USB 메모리는 1ms 미만, SSD는 아무리 느려도 0.1ms 이하이다. 즉 흩어진 조각이 10개일 경우 그것들을 모두 읽어들이는 데 필요한 시간이 하드디스크는 최소 90ms가 걸리는 반면 SSD는 10개든 100개든 1000개든 간에 별 차이 없이 1ms 안에 해낸다.

플래시 메모리에도 하드디스크의 플로터와 같이 재기록 수명이 있는데 조각 모음은 전체 공간을 썼다 지웠다 하면서 재기록 횟수를 소모하면서 수명을 감소시킨다. 그래서 윈도우 7에서는 클린 설치 시 SSD가 있다면 디스크 조각 모음이 작동하지 않는다.

조각 모음은 플래시 메모리 매체에 오히려 악영향을 미치는데, 이것은 플래시 메모리의 특성에서 기인한다. 플래시 메모리는 데이터를 기록할 때마다 수명이 줄어드는데, SLC라면 큰 문제는 없다. SLC는 약 5~10만 회의 재기록 수명을 가지기 때문. 그러나 MLC로 가면 재기록 회수가 3천~1만 회로 대폭 줄어들고, TLC는 최대 1천 회 정도로 더 줄어든다. 거기다 제조 공정이 작을수록 이 수명은 더 줄어든다. 요즘 나오는 SSD가 저가형은 TLC를 많이 쓴다는 점을 생각해보면 무시할 수 없는 수치가 된다. 조각 모음에 대한 실익도 거의 없으니 굳이 할 필요가 없다라고 알면 된다. 특히 윈도우 8 이상에서는 조각 모음 기능을 지원하지도 않는다. 만약 매니지먼트 기능을 쓴다면 좋을 일이 없으므로 해당 기능은 꺼두자.

윈도우 8.1 이후에는 내장된 조각 모음 프로그램이 SSD 장착을 인식한다. '조각 모음' 이 아니라 '드라이브 최적화 및 조각 모음' 인 부분에서 기능의 차이를 추측해 볼 수 있다. 이 프로그램을 실행하면 보이는 첫 화면에서 미디어 유형이라는 란에 'SSD(솔리드 스테이트 드라이브)' 라고 뜬다. 이때 최적화 버튼을 누르면 HDD에서 하는 그런 조각 모음을 하는 것이 아니라 MFT를 최적화하고 TRIM을 진행한다고 보인다. 단, 윈도우에 기본으로 내장된 조각 모음 프로그램 한정이며, 백신(예를들어 노턴 시큐리티) 등에 딸려있는 최적화 시스템에 있는 조각모음은 이 방식이 아니라서 무턱대고 최적화 했다간 화를 당하기 쉽상이다. 반드시 최적화 내용을 살펴보고 조각모음이 있다면 그 기능은 뺴놓고 하도록 하자.

작업 관리자에서는 SSD가 논다며 활성 시간이 0~5% 이내로 뜨겠지만, 막상 SATA 작동 등은 길게(2~3초 동안) 빛이 날 것이다.

PMPMP3 플레이어는 어지간히 많이 혹사시키며 사용하지 않는한 성능에 영향이 있을만큼의 파편화가 발생하지 않는다. 신경이 쓰인다면 백업 후 포맷한 후에 다시 복사해 넣도록 하자. 모든 파일이 각각 한 덩이씩 똑바로 들어가서 조각모음을 한 것과 마찬가지가 되며, 전송 인터페이스가 USB 2.0 미만일 경우라면 이쪽이 차라리 빠르다. 하지만 복사 인스턴스를 동시에 여러 개 돌리면 도로아미타불. 실익은 없으니 자기만족 이상의 의미는 없다는 점을 명심하자.

물론 PMP 중 하드디스크를 사용하는 종류는 디스크 조각 모음을 해도 된다.

6 기타

현재는 마이크로소프트에게 인수된 Sysinternals가 제작한 Contig를 이용하면 고속/고효율로 조각모음을 할 수 있다. 단 커맨드 라인 툴이므로 GUI 프론트엔드인 'Power Defragmenter'를 통해 사용하는 편이 손발이 편하다. 링크

Windows에서 페이징(가상 메모리) 파일과 레지스트리 하이브는 조각모음을 시켜주면 큰 성능 향상을 보일 때도 있다. 단 이것은 일반적인 조각 모음 소프트웨어로는 불가능하고, 상기한 Sysinternals의 PageDefrag, 혹은 Elcor의 Registry Defragmentation 등의 프로그램을 사용해야 한다. 그리고 레지스트리는 데이터의 물리적 조각 모음보다는 문맥적 조각 모음이라고 하는 편이 보다 정확할 것이다. 유닉스/리눅스 계열은 가상메모리를 swap 파티션에서 해결하고 레지스트리 개념이 애초부터 없으니 상관 없다.

OS X에는 디스크 조각 모음 유틸리티가 없는 듯이 보이지만, 사실은 20MB 미만의 파일에 한해 OS가 알아서 백그라운드에서 단편화를 제거한다. 그보다 큰 파일은 디스크에 기록할 때 가장 큰 공간에 먼저 기록하는 방식으로 파편화가 생기지 않도록 한다. 그러나 대용량 파일의 읽고 쓰기가 잦거나 하드디스크 공간이 부족하면 단편화를 피할 수 없다. 애플에서는 전자의 경우 서드파티의 유틸리티를 사용할 수 있으며, 후자의 경우 하드디스크를 좀 더 큰 용량으로 업그레이드하라고 권장한다. 서드파티의 유틸리티를 사용하지 않는다면 포맷하고 타임 머신에 백업을 다시 불러들여오면 된다.(...)

bb4f2b8462e3d64bfe1cd7828e6b5602.jpg

윈도우 내장 디스크 조각 모음 프로그램의 시초는 디스크키퍼 코퍼레이션에서 만들었다. 디스크 최적화 유틸리티 전문 업체로 마이크로소프트에서 하청을 받은 것이다. 원래는 무지막지하게 비싼 가격에 디스크키퍼라는 프로그램을 팔았는데, 콘두시브 테크놀로지가 인수하면서 개인용 제품의 가격이 매우 저렴해졌다. 디스크키퍼는 빠른 하드디스크 조각 모음 속도와 조각 발생을 예방하는(!) 기능을 갖춰 조각 모음계의 끝판왕 유틸리티로 유명하다. SSD 트림까지 지원하는 최적화 기술을 제공함으로써 디스크키퍼 하나로 하드디스크와 SSD를 통합 관리할 수 있다.

파편화를 줄일 수 있는 방법으로 저장장치의 클러스터 사이즈를 64KB로 증가시키는 방법이 알려져있다.[2] 저장장치는 클러스터 사이즈를 한 칸으로 해서 수많은 칸으로 저장되는데 기본값은 4KB이다. 1MB의 파일의 경우 클러스터 사이즈가 4KB라면 256조각, 64KB라면 16조각이다.[3] 하나의 파일이 가지는 조각의 숫자가 줄어들어서 파편화가 줄어드는 것이다. 물론 64KB이하의 미세 파편화가 발생하지 않는다는 것이다.[4]
  1. 물론 SSD는 기계식인 하드디스크와는 방식이 다르기 때문에 아무리 파편화가 진행되어 있어도 수명에 미치는 영향이 없다.
  2. 클러스터는 파일 시스템에서 말하는 최소저장단위로 어떤 용량의 파일이라도 저장될 때는 클러스터 사이즈에 맞춰서 1개에서 여러개의 조각으로 저장됀다.
  3. 1KB의 파일을 저장할 경우에는 클러스터 사이즈에 따라서 실제로 저장되는 용량은 4KB 클러스터 사이즈에서 4KB, 64KB 클러스터 사이즈에서 64KB로 저장됀다.
  4. 근본적인 원인을 해결하지는 못하지만 안한것 보다는 낫다는 평이지만 64KB이하의 적은용량의 파일이 많은경우 역효과가 나기도 한다. 1Bit를 쓰기 위해서는 64KB를 써야 한다.