단편화
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
단편화는 컴퓨터 시스템에서 데이터가 여러 조각으로 나뉘어 저장되어 성능 저하를 유발하는 현상을 의미한다. 단편화는 파일 시스템, 메모리 등 다양한 영역에서 발생하며, 내부 단편화, 외부 단편화, 데이터 단편화 등으로 구분된다. 단편화는 하드 디스크 드라이브(HDD)와 같은 기계적 저장 장치에서 성능 저하를 초래하며, 솔리드 스테이트 드라이브(SSD)에서도 메타데이터 처리로 인한 부하를 발생시킬 수 있다. 단편화를 해결하기 위해 통합과 집약 기법, 조각 모음, 지연 할당 등의 기술이 사용되며, 단편화 방지 기법을 통해 발생 자체를 최소화하려는 노력도 이루어진다.
더 읽어볼만한 페이지
- 파일 시스템 관리 - 하드 디스크 드라이브
하드 디스크 드라이브(HDD)는 자기 기록 방식으로 데이터를 저장하는 비휘발성 저장 장치로, 꾸준히 발전하여 대용량 저장이 가능하지만 SSD의 등장으로 시장 점유율이 감소하고 있으며 웨스턴디지털, 씨게이트, 도시바가 주요 제조업체이다. - 파일 시스템 관리 - 디스크 포맷
디스크 포맷은 운영 체제와 응용 프로그램이 디스크를 사용하도록 준비하는 과정으로, 기록 블록 표시 및 파일 시스템 구성 단계를 포함하며, 로우 레벨 포맷, 파티셔닝, 하이 레벨 포맷으로 나뉘어 디스크 사용 목적과 운영 체제 호환성을 확보하는 데 중요한 역할을 한다. - 파일 시스템 - 부트 섹터
부트 섹터는 시스템 부팅 코드를 담은 저장 매체의 특정 영역으로, 볼륨 부트 레코드(VBR)와 마스터 부트 레코드(MBR)로 나뉘며, BIOS는 이를 실행하고 UEFI는 부트로더를 직접 로드하지만 바이러스 공격에 취약하다. - 파일 시스템 - ZFS
ZFS는 Jeff Bonwick 등이 설계하고 구현한 파일 시스템으로, 데이터 무결성, 스냅샷, RAID-Z 등의 기능을 제공하며, 썬 마이크로시스템즈에서 개발되어 OpenZFS 프로젝트를 통해 다양한 운영체제에서 사용된다. - 데이터 관리 - 데이터 센터
데이터센터는 컴퓨터 시스템 및 관련 장비와 지원 인프라를 수용하는 시설로, 기술 발전에 따라 규모와 중요성이 확대되었으며, 에너지 효율과 보안을 고려하여 설계 및 운영되고, TIA-942 표준에 따른 티어 분류와 친환경 기술 도입이 이루어지고 있다. - 데이터 관리 - 정보 아키텍처
정보 아키텍처는 정보 시스템 및 정보 기술 분야에서 공유 정보 환경의 구조적 설계를 의미하며, 웹사이트, 소프트웨어 등의 구성과 레이블링을 포함하여 검색 용이성과 사용성을 지원하고, 도서관정보학에 기원을 두고 있다.
| 단편화 | |
|---|---|
| 일반 정보 | |
| 용어 | 단편화, 파편화 |
| 분야 | 파일 시스템 |
| 설명 | 파일 시스템의 비효율적인 사용 상태 |
| 파일 시스템 단편화 | |
| 원인 | 파일의 저장 및 삭제 과정에서 발생하는 공간 분할 |
| 영향 | 디스크 공간 낭비, 성능 저하 |
| 해결 방법 | 조각 모음 (Defragmentation) |
| 메모리 단편화 | |
| 구분 | 내부 단편화, 외부 단편화 |
| 내부 단편화 | 할당된 메모리 블록 내에서 사용되지 않는 공간 |
| 외부 단편화 | 사용 가능한 메모리 공간이 분산되어 큰 블록을 할당할 수 없는 상태 |
| 관련 개념 | |
| 조각 모음 | 단편화된 파일을 재배치하여 연속적인 공간을 확보하는 과정 |
| 파일 시스템 | 컴퓨터에서 파일을 저장하고 관리하는 구조 |
2. 단편화의 종류
단편화는 발생하는 원인과 위치에 따라 다음과 같이 나눌 수 있다.
- 내부 단편화: 메모리 할당이 필요한 크기보다 큰 단위로 이루어질 때 발생하며, 할당된 공간 내부에 사용되지 않는 낭비되는 공간이 생기는 현상이다.
- 외부 단편화: 메모리가 할당되고 해제되는 과정이 반복되면서 사용 가능한 메모리 공간이 작은 조각들로 나뉘는 현상이다. 이로 인해 충분한 메모리 공간이 존재함에도 불구하고, 연속된 공간이 부족하여 할당 요청을 처리하지 못하는 상황이 발생할 수 있다.
- 데이터 단편화: 파일 시스템에서 파일이 여러 조각으로 나뉘어 저장될 때 발생한다. 이는 일반적으로 큰 파일을 외부 단편화가 발생한 공간에 저장하려고 할 때 발생한다.
2. 1. 내부 단편화
메모리 할당이 필요한 크기보다 큰 단위로 이루어질 때 내부 단편화가 발생한다. 할당된 공간 내부에 사용되지 않는 낭비되는 공간이 생기는 현상이다. 운영체제의 메모리 관리 기법 중 페이징을 사용할 때 발생할 수 있다. 프로세스를 일정 크기의 페이지 단위로 나누어 메모리에 할당하는데, 프로세스 크기가 페이지 크기보다 작을 경우, 마지막 페이지에는 사용되지 않는 공간이 남게 된다.2. 2. 외부 단편화
외부 단편화는 메모리가 할당되고 해제되는 과정이 반복되면서, 사용 가능한 메모리 공간이 작은 조각들로 나뉘는 현상이다. 이로 인해 충분한 메모리 공간이 존재함에도 불구하고, 연속된 공간이 부족하여 할당 요청을 처리하지 못하는 상황이 발생할 수 있다.외부 단편화는 주로 가변 길이 메모리 관리 시스템에서 발생한다. 예를 들어, 주기억 장치의 세그먼트 방식에서 발생할 수 있다.[1] 가상 기억에서의 페이징은 프로그램을 고정 길이 단위로 분할하여 관리하므로 외부 단편화가 발생하지 않는다.
힙과 같은 자료 구조를 메모리에 전개할 때도 데이터 추가/삭제에 따라 외부 단편화가 발생할 수 있다. 이러한 경우, 자료 구조에 따른 컴팩션 알고리즘을 적용하여 외부 단편화를 해결할 수 있다.
보조 기억 장치의 디스크 조각 모음도 외부 단편화를 해소하여 성능 향상을 도모하는 한 가지 방법이다. 파일 시스템의 기능 덕분에 메모리가 연속 영역이 아니어도 동작 가능하지만, 헤드의 시크로 인해 효율이 저하되는 경우 외부 단편화를 해소하면 성능을 향상시킬 수 있다.
2. 3. 데이터 단편화
데이터 단편화는 파일 시스템에서 파일이 여러 조각으로 나뉘어 저장될 때 발생한다. 이는 일반적으로 큰 파일을 외부 단편화가 발생한 공간에 저장하려고 할 때 발생한다. 파일 시스템은 파일을 연속된 공간에 저장하려고 하지만, 공간 부족 등의 이유로 여러 조각으로 나누어 저장하는 경우가 생긴다.3. 파일 시스템 단편화
파일 시스템 단편화는 다음의 여러 수준에서 발생할 수 있다.
- 개별 파일 내의 단편화
- 가용 공간 단편화
- 개별 파일 간의 참조 지역성 감소 (단, 서로 관련된 파일)[4]
- 파일 시스템 자체를 위해 예약된 데이터 구조 또는 특수 파일 내의 단편화
3. 1. 파일 단편화
파일 단편화는 개별 파일이 디스크 상의 여러 위치에 분산되어 저장될 때 발생한다. 디스크 파일 시스템은 개별 파일을 연속적으로 유지하려고 시도하지만, 이는 상당한 성능 저하 없이 자주 가능하지 않다. 파일 시스템 검사 및 조각 모음 도구는 일반적으로 "조각화 비율" 통계에서 파일 조각화만 고려한다.다음은 파일 단편화를 단순화하여 설명하는 예시이다. 새 디스크에 A, B, C, D, E라는 다섯 개의 파일이 순서대로 연속 저장되어 있고, 각 파일은 10개의 블록 공간을 사용한다고 가정한다. (여기서 블록 크기는 중요하지 않다.) 디스크의 나머지 공간은 하나의 빈 블록이다. 따라서 파일 E 이후에 추가 파일을 만들고 저장할 수 있다.
파일 B가 삭제되면, 10개 블록으로 구성된 두 번째 자유 공간 영역이 생성되어 디스크가 단편화된다. 빈 공간은 나중에 사용하기 위해 표시되고, 필요에 따라 다시 사용된다. 파일 시스템은 삭제 직후 디스크를 조각 모음할 수 있지만, 예측할 수 없는 시간에 심각한 성능 저하가 발생할 수 있다.
이제 7개의 공간이 필요한 F라는 새 파일은 파일 B가 있던 공간의 처음 7개 블록에 저장될 수 있고, 나머지 3개 블록은 계속 사용할 수 있다. 만약 3개의 블록만 필요한 G라는 새 파일이 추가되면, F 다음, C 앞에 있는 공간을 차지할 수 있다.
이후 F를 확장해야 하는 경우, 바로 뒤의 공간이 사용 중이므로 파일 시스템에는 세 가지 옵션이 있다.
# 어딘가에 새 블록을 추가하고 F에 두 번째 익스텐트가 있음을 나타낸다.
# 확장을 방해하는 파일을 다른 곳으로 이동하여 F가 계속 연결되도록 허용한다.
# 파일 F를 이동하여 새 크기의 하나의 연속 파일이 될 수 있도록 한다.
두 번째 옵션은 파일이 매우 큰 경우 세 번째 옵션과 마찬가지로 성능상의 이유로 실용적이지 않을 수 있다. 세 번째 옵션은 새 파일을 담을 수 있을 만큼 단일 연속된 자유 공간이 없는 경우 불가능하다. 따라서 일반적인 방법은 어딘가에 익스텐트를 만들고, 새 익스텐트를 이전 익스텐트에 연결하는 것이다.
파일 F의 끝에 추가된 자료는 동일한 익스텐트의 일부가 된다. 그러나 마지막 익스텐트 뒤에 사용할 수 있는 공간이 충분하지 않으면, 다른 익스텐트를 만들어야 한다. 결국 파일 시스템에는 여러 위치에 자유 세그먼트가 있으며, 일부 파일은 여러 익스텐트에 분산될 수 있다. 해당 파일(또는 모든 파일)에 대한 접근 시간이 과도하게 길어질 수 있다.
3. 2. 자유 공간 단편화
자유 공간 단편화는 파일 시스템에 새 파일이나 메타데이터를 쓸 수 있는 여러 개의 사용되지 않은 영역이 있을 때 발생한다. 원치 않는 자유 공간 단편화는 보통 파일 삭제 또는 잘림으로 인해 발생하지만, 파일 시스템은 근처 파일의 확장을 쉽게 하기 위해 자유 공간 조각("버블")을 의도적으로 삽입하기도 한다(단편화 방지 참조).3. 3. 파일 분산 (참조 지역성 감소)
파일 분산은 관련 파일 조각화 또는 응용 프로그램 수준(파일) 조각화라고도 하며, 서로 관련 있는 파일들이 디스크 상에서 멀리 떨어져 저장되어 참조 지역성이 감소하는 현상을 의미한다. 파일 분산은 특정 응용 프로그램의 접근 패턴에 크게 의존하기 때문에, 다른 유형의 단편화보다 더 모호하고 객관적으로 측정하기 어렵다. 그러나 연구 결과에 따르면 가장 자주 접근되는 파일들이 초당 사용 가능한 디스크 처리량에 비해 작은 경향이 있어, 파일 분산은 성능에 큰 영향을 주는 중요한 유형의 단편화일 수 있다.[4]파일 분산을 방지하고 참조 지역성(파일 연속성)을 개선하려면 응용 프로그램 작동에 대한 가정이 필요하다. 일반적으로 더 작은 파일들을 단일 디렉터리 내에 함께 유지하고, 자연적인 파일 시스템 순서로 배치하는 것이 유용하다는 가정을 한다. 이는 대체로 합리적이지만, 항상 유효한 것은 아니다. 예를 들어, 응용 프로그램은 여러 디렉터리에 있는 파일들을 작성된 순서대로 읽을 수 있다. 따라서 모든 쓰기를 순차적으로 정렬하는 파일 시스템이 특정 응용 프로그램에서 더 빠르게 작동할 수도 있다.
4. 단편화 발생 원인
파일 시스템이 처음 초기화될 때는 비어 있는 공간이 연속적인 블록으로 구성된다. 그러나 파일 생성, 삭제, 수정이 반복되면서 단편화가 발생한다.
파일이 삭제되거나 크기가 줄어들면, 해당 공간은 새로운 빈 공간으로 남는다. 만약 새로운 파일이 이 빈 공간보다 크면, 파일은 여러 조각으로 나뉘어 저장된다. 또한, 기존 파일에 내용을 추가할 때 연속된 공간이 부족하면 파일은 여러 조각으로 나뉘어 저장된다. 시간이 지남에 따라 이러한 현상이 반복되면, 빈 공간과 파일들은 점점 더 조각화되는 경향이 있다.
이는 가변 길이로 메모리 관리를 수행하는 경우에도 발생한다. 메모리 영역 확보 및 해제가 반복되면, 연속된 빈 영역이 줄어들어 새로운 영역 할당이 어려워진다. 보조 기억 장치의 디스크 조각 모음은 이러한 외부 단편화를 해소하여 성능 향상을 돕는다.
5. 단편화의 영향
파일 시스템 조각화는 하드 디스크 드라이브의 순차적 접근 속도와 회전 지연 시간의 격차가 커지면서 더 큰 문제가 된다. 따라서 조각화는 파일 시스템 연구 및 설계에서 중요한 문제이다.[8]
솔리드 스테이트 드라이브(SSD)는 기계적인 탐색 시간이 필요하지 않아 파일 시스템 조각화의 영향이 적다.[10] 그러나 파일 시스템은 파일의 각 비연속 부분에 대한 추가 메타데이터를 저장해야 한다. 각 메타데이터 조각 자체는 공간을 차지하고 처리 능력과 프로세서 시간을 필요로 한다. 최대 조각화 한계에 도달하면 쓰기 요청이 실패한다.[10]
보조 기억 장치의 디스크 조각 모음은 파일 시스템의 기능에 의해 메모리가 연속 영역이 아니어도 동작 가능하지만, 헤드의 시크에 의해 효율이 상당히 저하되는 경우에 외부 단편화를 해소하여 성능 향상을 도모하는 것이다.
6. 단편화 해결 기법
메모리 또는 디스크 단편화를 해결하기 위한 기본적인 방법으로는 통합과 집약 기법이 있다. 단편화 해결 기술은 ''선제적'' 방식과 ''사후적'' 방식으로 분류할 수 있는데, 이 기술들은 접근 패턴 예측의 어려움으로 인해 대부분 휴리스틱 성격을 가지며, 예상치 못한 작업 부하에서는 성능 저하가 발생할 수 있다.
6. 1. 메모리 단편화 해결
프레임 기법을 이용하여 메모리를 일정한 크기로 나누어 관리함으로써 내부 단편화 문제를 해결할 수 있다. 가상 기억에서의 페이징은 프로그램을 512에서 4킬로바이트의 고정 길이 단위로 분할하여 수행되므로 단편화는 발생하지 않는다.메모리 상에서 영역을 확보하거나 해제(크기 변경 포함)하는 것을 반복하면, 메모리 상의 미할당 영역 중 연속된 영역으로서 최장의 것이 할당하려는 데이터의 크기보다 작아져서, 그대로는 새로운 영역 할당이 불가능하게 된다. 이 경우, 데이터에 할당할 메모리가 연속된 영역이어야 한다는 것이 전제 조건이 된다. 예를 들어 주기억 장치의 세그먼트 방식에서 발생한다. 물리 주소 공간에서 연속되어 있지 않아도, 논리 주소 공간에서 연속되어 있으면 되므로, 페이징 방식을 세그먼트 방식과 조합하여 사용하는 경우도 많다.
힙 등의 자료 구조를, 통상 선형 공간인 메모리에 전개하는 경우에도, 데이터의 가감에 따라 마찬가지로 외부 단편화가 발생할 수 있다. 단편화 해결에는, 자료 구조에 따른 컴팩션 알고리즘이 적용된다.
보조 기억 장치의 디스크 조각 모음도, 파일 시스템의 기능에 의해 메모리가 연속 영역이 아니어도 동작 가능하지만, 헤드의 시크에 의해 효율이 (상당히) 저하되는 경우에, 외부 단편화를 해소하여 성능 향상을 도모하는 것이다.
6. 2. 디스크 단편화 해결
물리적으로 디스크의 내용을 다시 정리하여 각 파일을 연속적으로 붙이면서 이러한 작업을 수행할 수 있다. 일부 단편화 제거 프로그램은 자주 접근하는 조그마한 파일들을 단일 디렉터리 안에 유지시키기도 한다.[16] 많은 파일 시스템은 파일을 조각화하고 때로는 흩어짐을 줄이려고 시도하는 조각 모음 도구를 제공한다(예: 더 작은 파일을 디렉터리 또는 디렉터리 트리 또는 심지어 파일 시퀀스를 디스크에서 서로 가깝게 유지하여 연속성 또는 참조 지역성을 개선한다).[16] HFS Plus 파일 시스템은 파일이 열릴 때 크기가 20 MiB 미만이고 8개 이상의 조각으로 분할된 파일을 투명하게 조각 모음한다.[16]7. 단편화 방지 기법
파일 시스템이 처음 초기화될 때, 파티션에는 소수의 작은 내부 구조만 포함되어 있으며, 그 외에는 비어 있는 공간의 연속적인 블록일 뿐이다. NTFS나 ext2+와 같은 일부 파일 시스템은 특수한 목적으로 비어 있는 연속 영역을 미리 할당하기도 한다.NTFS 및 ext2+와 같은 일부 파일 시스템은 특수한 목적으로 비어 있는 연속 영역을 미리 할당할 수 있다.영어 파일 시스템이 새로 생성된 파일을 파티션의 아무 곳에나 배치할 수 있다는 의미이다. 생성 후 얼마 동안은 파일을 최적에 가깝게 배치할 수 있다. 운영 체제 및 응용 소프트웨어를 설치하거나 아카이브를 압축 해제하면, 관련된 파일들이 서로 가깝게 배치되도록 별도의 파일들이 순차적으로 생성된다.
기존 파일이 삭제되거나 잘리면 새로운 자유 공간 영역이 만들어진다. 기존 파일에 내용을 추가하려고 할 때, 다른 파일이 이미 할당되어 있으면 파일이 끝났던 정확한 위치에서 쓰기를 다시 시작하는 것이 불가능한 경우가 많다. 따라서 새로운 조각을 할당해야 한다. 시간이 지남에 따라 파일의 추가/삭제가 반복되면, 자유 공간과 파일들이 점점 더 조각화되는 경향이 있다. 자유 공간 영역이 짧아지면 파일 시스템은 새 파일을 연속적으로 할당할 수 없게 되고, 파일을 여러 조각으로 나누어 저장해야 한다. 이는 파일 시스템이 가득 차서 큰 연속 자유 공간 영역을 사용할 수 없을 때 특히 문제가 된다.
단편화 방지 기법은 데이터를 디스크에 기록할 때 이러한 단편화를 최소화하는 기법이다. 대표적인 기법으로는 익스텐트 기반 할당, 파일 미리 할당, 지연 할당 등이 있다.
7. 1. 익스텐트 기반 할당
오늘날 많은 파일 시스템은 활발하게 추가되는 파일에 대해 익스텐트를 미리 할당하려고 시도한다. 익스텐트는 더 긴 청크 또는 서로 다른 여유 공간 조각에서 가져온 청크이다. 이는 여러 파일에 동시에 추가될 때 파일 조각화를 크게 방지하여 지나치게 얽히는 것을 방지한다.[9]7. 2. 파일 미리 할당
수정 대상 파일의 최종 크기를 알고 있는 경우, 파일 생성 시 전체 공간을 미리 할당하여 단편화를 방지할 수 있다. 예를 들어, 마이크로소프트 윈도우의 스왑 파일(페이지 파일)은 정상적인 작동 중 동적으로 크기를 조정할 수 있으므로 조각화가 심해질 수 있다. 이는 페이지 파일의 최소 및 최대 크기를 동일하게 지정하여 전체 파일을 효과적으로 미리 할당함으로써 방지할 수 있다.[9]비트토렌트 및 기타 P2P 파일 공유 애플리케이션은 다운로드를 시작할 때 파일에 필요한 전체 공간을 미리 할당하여 조각화를 제한한다.[12]
7. 3. 지연 할당
XFS, HFS+[13], ZFS에서 사용되는 비교적 최근의 기법은 지연 할당이다. reiser4 및 ext4에서는 플러시 시 할당이라고도 한다. 파일 시스템에 쓰기 작업이 수행될 때 파일 시스템 블록은 예약되지만, 특정 파일의 위치는 아직 정해지지 않는다. 나중에 메모리 압박이나 트랜잭션 커밋의 결과로 파일 시스템이 변경 사항을 플러시해야 할 때 할당자는 파일의 특성에 대해 훨씬 더 잘 알게 된다. 이 방식을 사용하는 대부분의 파일 시스템은 단일 디렉터리 내의 파일을 연속적으로 플러시하려고 시도한다. 단일 디렉터리에서 여러 번 읽기가 일반적이라고 가정하면 참조 지역성이 향상된다.[14] Reiser4는 또한 디렉터리 해시 테이블에 따라 파일의 레이아웃을 정렬하여 파일 시스템의 자연스러운 순서 (readdir에 의해 결정됨)로 파일에 접근할 때 항상 순차적으로 읽을 수 있도록 한다.[15]참조
[1]
뉴스
Should I defrag my SSD?
https://www.pcgamer.[...]
2022-02-11
[2]
웹사이트
Description of the ''can't extend'' error
http://www.8bs.com/h[...]
[3]
웹사이트
Possible data loss caused by the ''can't extend'' error
http://8bs.com/mag/1[...]
[4]
논문
A Large-Scale Study of File-System Contents
1999-06
[5]
웹사이트
How NTFS reserves space for its Master File Table (MFT)
https://learn.micros[...]
Microsoft
2022-10-22
[6]
웹사이트
DiskWarrior in Depth
https://www.alsoft.c[...]
2022-10-22
[7]
웹사이트
Maintaining Windows 2000 Peak Performance Through Defragmentation
https://learn.micros[...]
Microsoft
2022-10-22
[8]
간행물
Future Storage Technologies: A Look Beyond the Horizon
http://www.snwusa.co[...]
Seagate Technology
2006-04-03
[9]
간행물
Extent-like Performance from a UNIX File System
http://www.cis.upenn[...]
Sun Microsystems, Inc.
1991
[10]
웹사이트
The real and complete story - Does Windows defragment your SSD?
http://www.hanselman[...]
2014-12-03
[11]
논문
Workload-Specific File System Benchmarks
http://www.eecs.harv[...]
Harvard University
2001-01
[12]
논문
From ext3 to ext4: An Interview with Theodore Ts'o
http://www.linux-mag[...]
QuinStreet
2009-03-29
[13]
웹사이트
Fragmentation in HFS Plus Volumes
http://osxbook.com/s[...]
2004-05
[14]
간행물
Scalability in the XFS File System
http://www.soe.ucsc.[...]
Silicon Graphics
1996-01
[15]
웹사이트
The Reiser4 Filesystem
http://video.google.[...]
2006-02-06
[16]
서적
Mac OS X Internals: A Systems Approach
Addison Wesley
[17]
서적
Computer Architecture and Organization
''
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com