여기서 우연히 책을 썼습니다. 커피를 먼저 드십시오.
디스크 공간을 비우면 왜 컴퓨터 속도가 빨라 집니까?
적어도 독자적으로는 아닙니다. 이것은 정말 일반적인 신화입니다. 하드 드라이브를 작성하는 것은 종종 전통적으로 다른 것들과 동시에 발생하기 때문에이 공통의 신화 이유는 수 천천히 † 컴퓨터를. 드라이브가 가득 차면 SSD 성능이 저하되는 경향 이 있지만 이는 SSD에 고유 한 비교적 새로운 문제이며 일반 사용자에게는 눈에 띄지 않습니다. 일반적으로 디스크 여유 공간이 부족하면 빨간색 청어 일뿐 입니다.
예를 들면 다음과 같습니다.
파일 조각화. 파일 조각화 는 †† 문제 이지만 사용 가능한 공간이 부족하지만 많은 기여 요인 중 하나가 유일한 원인은 아닙니다. 몇 가지 핵심 사항은 다음과 같습니다.
파일이 조각 날 가능성은 드라이브에 남은 여유 공간과 관련 이 없습니다 . 이들은 드라이브에서 사용 가능한 최대 여유 공간 블록의 크기 (예 : 여유 공간의 "구멍")와 관련이 있으며, 여유 공간의 양은 상한을 설정 합니다. 또한 파일 시스템이 파일 할당을 처리하는 방법과 관련이 있습니다 (아래 참조). 고려 : 하나의 연속 된 블록에서 모든 여유 공간이 95 % 가득 찬 드라이브는 0 %의 새 파일 조각화 확률 ††† (추가 된 파일의 조각화 가능성은 여유 공간과 무관)입니다. 5 % 꽉 찼지만 드라이브에 데이터가 고르게 분산 된 드라이브는 조각화 가능성이 매우 높습니다.
파일 조각화 는 조각난 파일에 액세스 할 때만 성능에 영향을 미칩니다 . 고려 : 당신은 여전히 많은 무료 "구멍"을 가지고 좋은 조각 모음 드라이브가 있습니다. 일반적인 시나리오. 모든 것이 순조롭게 진행되고 있습니다. 그러나 결국 여유 공간이 더 이상 남아 있지 않은 지점에 도달하게됩니다. 거대한 영화를 다운로드하면 파일이 심각하게 조각화됩니다. 컴퓨터 속도가 느려지지 않습니다. 이전에 괜찮 았던 모든 응용 프로그램 파일과 파일은 갑자기 조각화되지 않습니다. 이것은 영화를 만들 수 있습니다로드하는 데 시간이 오래 걸리지 만 (일반적인 영화 비트 전송률은 하드 드라이브 읽기 속도에 비해 너무 낮아서 눈에 띄지 않을 수 있지만) 동영상 이로드 되는 동안 I / O 바인딩 성능에 영향을 줄 수 있지만, 아무것도 변하지 않습니다.
파일 조각화는 확실히 문제이지만 OS 및 하드웨어 수준 버퍼링 및 캐싱으로 인해 영향이 완화되는 경우가 종종 있습니다. 쓰기 지연, 미리 읽기, Windows 프리 페처 등 의 전략은 모두 조각화의 영향을 줄이는 데 도움이됩니다. 일반적으로 조각화가 심해질 때까지 실제로 큰 영향을 미치지 않습니다 (스왑 파일이 조각화되지 않는 한 아마 눈치 채지 못할 것입니다).
검색 인덱싱이 또 다른 예입니다. 자동 인덱싱이 설정되어 있고이를 정상적으로 처리하지 못하는 OS가 있다고 가정하겠습니다. 색인 생성 가능한 컨텐츠를 컴퓨터 (문서 등)에 더 많이 저장하면 색인 작성에 시간이 오래 걸리고 I / O 및 CPU 사용량 모두에서 컴퓨터가 실행되는 동안 인식되는 속도에 영향을 줄 수 있습니다. . 이것은 여유 공간과 관련이 없으며 인덱싱 가능한 콘텐츠 양과 관련이 있습니다. 그러나 사용 가능한 공간이 부족하면 더 많은 콘텐츠를 저장하기 때문에 잘못된 연결이 이루어집니다.
바이러스 백신 소프트웨어. 검색 색인 작성 예제와 유사합니다. 드라이브의 백그라운드 검색을 수행하도록 바이러스 백신 소프트웨어를 설정했다고 가정 해 보겠습니다. 검색 가능한 컨텐츠가 점점 많아 질수록 검색에 더 많은 I / O 및 CPU 자원이 사용되어 작업을 방해 할 수 있습니다. 다시 말하지만 이것은 스캔 가능한 콘텐츠의 양과 관련이 있습니다. 내용이 많을수록 여유 공간이 줄어들지 만 여유 공간이 부족한 것은 아닙니다.
설치된 소프트웨어. 컴퓨터가 부팅 될 때로드되는 많은 소프트웨어가 설치되어 시작 시간이 느려 졌다고 가정 해 봅시다. 많은 소프트웨어가로드되고 있기 때문에 속도가 느려집니다. 그러나 설치된 소프트웨어는 하드 드라이브 공간이 필요합니다. 따라서 이와 동시에 하드 드라이브 여유 공간이 줄어들고 다시 잘못 연결될 수 있습니다.
- 함께 사용하면 여유 공간 부족과 성능 저하를 밀접하게 연관시키는 것처럼 보이는 여러 가지 예가 있습니다.
위의 내용은 이것이 일반적인 신화 인 또 다른 이유를 보여줍니다. 여유 공간 부족은 속도 저하의 직접적인 원인은 아니지만 다양한 응용 프로그램을 제거하거나 색인을 생성하거나 스캔 한 콘텐츠를 제거하는 등의 경우가 있습니다 (항상 그런 것은 아닙니다. 응답) 남은 여유 공간과 관련이없는 이유로 성능을 다시 향상시킵니다 . 그러나 이것은 또한 자연스럽게 하드 드라이브 공간을 비 웁니다. 따라서 "더 많은 여유 공간"과 "빠른 컴퓨터"간에 명백한 (그러나 잘못된) 연결이 이루어질 수 있습니다.
고려 : 소프트웨어가 많이 설치되어 컴퓨터가 느리게 실행되고 하드 드라이브를 더 큰 하드 드라이브로 복제 한 다음 파티션을 확장하여 여유 공간을 늘리면 마술 같은 속도가 아닙니다. 쪽으로. 동일한 소프트웨어가로드되고 동일한 파일이 여전히 동일한 방식으로 조각화되고 동일한 검색 인덱서가 계속 실행되며 더 많은 여유 공간이 있어도 변경되지 않습니다.
물건을 저장할 메모리 공간을 찾는 것과 관련이 있습니까?
아니 그렇지 않아. 여기서 주목할만한 두 가지 중요한 사항이 있습니다.
하드 드라이브는 물건을 넣을 장소를 찾기 위해 검색하지 않습니다. 하드 드라이브가 바보입니다. 아무것도 아닙니다. OS가 알려주는 내용을 맹목적으로 표시하고 요청 된 내용을 읽는 맹목적인 스토리지 블록입니다. 최신 드라이브에는 시간이 지남에 따라 얻은 경험을 바탕으로 OS가 요구할 사항을 예측하도록 설계된 정교한 캐싱 및 버퍼링 메커니즘이 있습니다. 가끔 보너스 성능 기능을 갖춘 거대한 멍청한 저장 공간으로 드라이브하십시오.
운영 체제도 물건을 넣을 장소를 검색하지 않습니다. "검색"이 없습니다. 파일 시스템 성능에 매우 중요하므로이 문제를 해결하기 위해 많은 노력을 기울였습니다. 드라이브에서 데이터가 실제로 구성되는 방식은 파일 시스템 에 따라 결정됩니다.. 예를 들어 FAT32 (이전 DOS 및 Windows PC), NTFS (이후 Windows), HFS + (Mac), ext4 (일부 Linux) 등이 있습니다. "파일"과 "디렉토리"의 개념조차도 전형적인 파일 시스템의 제품 일뿐입니다. 하드 드라이브는 "파일"이라는 신비한 짐승에 대해 알지 못합니다. 자세한 내용은이 답변의 범위를 벗어납니다. 그러나 기본적으로 모든 공통 파일 시스템에는 사용 가능한 공간이 드라이브의 위치를 추적하는 방법이 있으므로 여유 공간을 찾는 것은 정상적인 상황 (예 : 양호한 상태의 파일 시스템)에서 필요하지 않습니다. 예 :
NTFS 에는 특수 파일 등 을 포함 하는 마스터 파일 테이블$Bitmap
과 드라이브를 설명하는 많은 메타 데이터가 있습니다. 기본적으로 다음 사용 가능한 블록의 위치를 추적하므로 매번 드라이브를 검색하지 않고도 새 파일을 사용 가능한 블록에 직접 쓸 수 있습니다.
또 다른 예인 ext4 에는 "비트 맵 할당 자"가 있는데 , 이는 ext2와 ext3에 비해 향상된 기능으로 기본적으로 사용 가능한 블록 목록을 스캔하는 대신 사용 가능한 블록이 어디에 있는지 직접 판별하는 데 도움이됩니다. Ext4는 또한 "지연된 할당", 즉 조각화를 줄이기 위해 어디에 배치해야하는지에 대한 더 나은 결정을 내리기 위해 드라이브에 기록하기 전에 OS에 의해 RAM에 데이터를 버퍼링하는 기능을 지원합니다.
다른 많은 예들.
또는 무언가를 저장하기에 충분한 연속 공간을 확보하기 위해 물건을 움직일 때?
아니요. 적어도 내가 아는 파일 시스템에서는 발생하지 않습니다. 파일이 조각난 상태입니다.
"무언가를 저장하기에 충분히 긴 연속 공간을 구성하기 위해 사물을 옮기는"과정을 조각 모음 이라고 합니다. 파일을 쓸 때 발생하지 않습니다. 디스크 조각 모음을 실행할 때 발생합니다. 최신 Windows에서는 최소한 일정에 따라 자동으로 발생하지만 파일을 작성해도 트리거되지 않습니다.
할 수 있다는 않도록 다음과 같은 일을 주변에 이동하는 파일 시스템 성능의 핵심이며, 조각 모음은 별도의 단계로 존재 이유 분열이 일어나는 이유입니다.
하드 디스크의 빈 공간을 비워 두어야합니까?
이것은 대답하기 까다로운 질문이며이 답변은 이미 작은 책으로 바뀌 었습니다.
경험 법칙 :
모든 유형의 드라이브 :
- 가장 중요한 것은 컴퓨터를 효과적으로 사용할 수 있도록 충분한 여유 공간을 확보 하십시오 . 작업 할 공간이 부족하면 더 큰 드라이브를 원할 것입니다.
- 많은 디스크 조각 모음 도구가 작동하려면 최소한의 여유 공간 (Windows의 경우 최악의 경우 15 % 필요)이 필요합니다.이 여유 공간을 사용하여 다른 항목이 재 배열 될 때 조각난 파일을 임시로 보관합니다.
- 다른 OS 기능을위한 공간을 확보하십시오. 예를 들어 컴퓨터에 실제 RAM이 많지 않고 동적 크기의 페이지 파일로 가상 메모리를 활성화 한 경우 페이지 파일의 최대 크기에 충분한 공간을 확보해야합니다. 또는 최대 절전 모드로 전환 된 랩톱이있는 경우 최대 절전 모드 상태 파일을위한 충분한 여유 공간이 필요합니다. 그런 것들.
SSD 별 :
- SSD는 최적의 안정성 (및 성능 저하)을 위해 약간의 여유 공간이 필요합니다.이 공간은 너무 자세하게 설명하지 않고 드라이브에 데이터를 분산하여 동일한 장소에 지속적으로 쓰는 것을 피하기 위해 사용합니다 (마모되는). 여유 공간을 떠나는 이러한 개념을 오버 프로비저닝 이라고 합니다. 중요 하지만 많은 SSD에는 필수 초과 프로비저닝 공간이 이미 존재합니다 . 즉, 드라이브는 종종 OS에보고하는 것보다 수십 GB가 더 큽니다. 로우 엔드 드라이브는 종종 파티션되지 않은 공간 을 수동으로 남겨 두어야 하지만, OP가 필수 인 드라이브의 경우 여유 공간을 두지 않아도됩니다 . 여기서 주목해야 할 것은초과 프로비저닝 된 공간은 종종 파티션되지 않은 공간에서만 가져옵니다 . 따라서 파티션이 전체 드라이브를 차지하고 여유 공간을 남겨두면 항상 계산 되지는 않습니다 . 여러 번 수동 오버 프로비저닝을 수행하려면 파티션을 드라이브 크기보다 작게 축소해야합니다. 자세한 내용은 SSD 사용 설명서를 확인하십시오. TRIM 및 가비지 콜렉션과 같은 효과도 있지만이 답변의 범위를 벗어납니다.
개인적으로 나는 약 20-25 %의 여유 공간이 남아있을 때 더 큰 드라이브를 사용합니다. 이것은 성능과 관련이 없으며, 그 시점에 도달하면 곧 데이터 공간이 부족할 것으로 예상되며 더 큰 드라이브를 얻을 시간입니다.
여유 공간을 보는 것보다 더 중요한 것은 예약 된 조각 모음이 SSD에있는 것이 아닌 적절한 위치에서 활성화되어 자신에게 영향을 줄 정도로 심각한 지점에 도달하지 않도록하는 것입니다. 마찬가지로 잘못된 가이드 조정을 피하고 OS가 작동하게하는 것, 예를 들어 Windows 프리 페처를 비활성화하지 마십시오 ( SSD 제외 ).
마지막으로 언급 할만한 것이 있습니다. 다른 대답 중 하나는 SATA의 반이중 모드가 동시에 읽고 쓰는 것을 방지한다고 언급했습니다. 사실이지만 이것은 지나치게 단순화되어 있으며 여기서 논의되는 성능 문제와 관련이 없습니다. 이것이 의미하는 것은, 단순히 데이터를 양방향으로 전송 될 수 없다는 것이다 와이어에 동시에. 그러나 SATA는 작은 최대 블록 크기 (와이어의 블록 당 약 8kB, 읽기 및 쓰기 작업 대기열 등)와 관련 하여 상당히 복잡한 사양을 가지고 있으며 읽기가 진행되는 동안 발생하는 버퍼에 대한 쓰기를 방해하지 않습니다. 조작 등
발생하는 모든 차단은 일반적으로 많은 캐시로 완화되는 물리적 자원의 경쟁으로 인한 것입니다. SATA의 이중 모드는 여기서 거의 전적으로 관련이 없습니다.
† "느리게"는 광범위한 용어입니다. 여기서는 I / O 바운드 (예를 들어, 컴퓨터가 크 런칭 번호에 앉아 있거나 하드 드라이브의 내용이 영향을 미치지 않는 경우) 또는 CPU 바운드 및 관련이있는 접선 관련 항목과 경쟁하는 항목을 나타내는 데 사용합니다. 높은 CPU 사용량 (예 : 수많은 파일을 검사하는 바이러스 백신 소프트웨어)
†† SSD 는 기계 장치와 동일한 제한을받지 않는 SSD에도 불구하고 순차 액세스 속도가 일반적으로 임의 액세스보다 빠르기 때문에 조각화의 영향을받습니다. James Snell이 주석에서 메모 한대로). 그러나 거의 모든 일반적인 사용 시나리오에서 이것은 문제가되지 않습니다. SSD 조각화로 인한 성능 차이는 일반적으로 응용 프로그램로드, 컴퓨터 부팅 등과 같은 경우 무시할 수 있습니다.
††† 의도적으로 파일을 조각화하지 않는 제정신 파일 시스템을 가정합니다.