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