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