답변:
HDD는 정확한 전송 속도를 가지고 있지 않습니다. 적절한 유지 보수, 즉 조각화되지 않았거나 불량 섹터 등이 있는지에 따라 다릅니다.
HDD가 SATA 2이고 동일한 파티션 인 경우 데이터 전송 속도 일뿐입니다.
동일한 HDD에 두 개의 파티션이있는 경우 버스와 마더 보드간에이 데이터 전송이 필요하지 않습니다. 즉, 버퍼에로드됩니다. (hdd 버퍼 크기에 따라 다릅니다.)
그러나 복사 된 모든 파일에 대해 시스템은 인덱스를 HDD의 MFT (마스터 파일 테이블)에 유지해야하므로 많은 파일을 복사하면 복사 프로세스가 느려집니다. 안티 바이러스가 있으면 복사 된 각 파일을 검사합니다. 그리고 Microsoft 검색 파일 인덱싱 (또는 다른 파일 인덱싱 서비스)을 활성화하면 결과가 더 나빠질 수 있습니다.
많은 파일의 복사본이 느린 이유는 여러 가지가 있다고 생각하지만 이것이 주된 이유입니다.
파일 수가 다른 이유는 무엇입니까?
분명히 "파일 복사"의 "데이터 복사"측면에만 초점을 맞추고 있습니다. 파일은 단순한 데이터 그 이상입니다. 파일 시스템 의 엔티티입니다 . 파일 이름과 속성 및 권한이 있습니다. 파일에 대한이 모든 추가 정보는 "파일이 복사 될 때"데이터와 함께 복제되어야합니다. 이 파일 시스템 오버 헤드를 수행하기 위해 상당한 양의 디스크 I / O가 있습니다.
일반 파일 시스템에서 하나의 파일을 복사하는 절차는 다음과 같습니다.
(a) 최소한 이것은 현재 디렉토리를 검색하는 것을 의미합니다. 또는 경로가 파일 시스템의 루트에서 시작될 수 있으며 여러 레벨의 디렉토리를 통과해야합니다.
(b) 최소한 이것은 현재 디렉토리를 검색하는 것을 의미합니다. 또는 경로가 파일 시스템의 루트에서 시작될 수 있으며 여러 레벨의 디렉토리를 통과해야합니다. 대상 파일이 이미 존재하면 복사 진행 또는 중단 방법을 결정하십시오. 대상 파일이 존재하지 않으면 새 디렉토리 항목을 작성해야하며 디렉토리 확장 (즉, 파일 블록 (일명 클러스터) 할당 오버 헤드 ) 이 필요할 수 있습니다 .
(c) 디렉토리를 확장해야하는 경우 사용 가능한 블록을 찾아서 새 블록을 할당하고 새 할당으로 할당 테이블을 수정 한 다음 블록을 디스크에 씁니다 . 대부분의 파일 시스템은 할당 테이블의 여러 복사본을 유지하므로 디스크에 여러 번 쓰는 것을 의미합니다.
(c1) 대상 디렉토리가 발견되면 디스크에서 디렉토리 블록을 읽고 복사 된 파일의 새 디렉토리 항목으로 수정 한 다음 블록을 디스크에 씁니다 .
(d) 파일을 복사하려면 사용 가능한 블록을 찾아 블록을 할당하고 새 할당으로 할당 테이블을 수정 한 다음 블록을 디스크에 씁니다 . 대부분의 파일 시스템은 할당 테이블의 여러 복사본을 유지하므로 디스크에 여러 번 쓰는 것을 의미합니다. 데이터 무결성을 유지하기 위해 파일 시스템은 디렉토리 및 할당 테이블에 대한 디스크 쓰기 작업 을 통합 (지연 및 병합) 하지 않고 새 파일을 작성하고 블록 할당 할 때 즉시 쓰기 작업을 수행 할 수 있습니다.
(예) 데이터가 complele입니다 복사하면 업데이트 적절한 파일 길이와 타임 스탬프와 함께 복사 된 파일에 대한 새로운 디렉토리 항목을 다음 쓰기 디스크에 디렉토리 블록을.
(f) 새로운 "액세스"타임 스탬프로 소스 디렉토리 항목을 업데이트 한 다음 디렉토리 블록을 디스크에 씁니다 .
따라서 하나의 파일 대신 천 개의 파일에 대해이 모든 작업을 수행하면 파일의 데이터 부분을 복사하는 데 시간이 더 걸릴 수 있습니까? 24MB의 파일 하나만 복사하면 1,000 개 파일의 복사 시간과 비교할 내용이 있습니다.
파일 시스템을 백업 할 때 개별 파일을 디스크 나 파티션의 다른 파일 시스템에 복사하는 것은 거의 느리게 사용됩니다. 더 빠른 방법은 소스 디렉토리 항목과 파일 내용을 특수 파일 형식으로 보유 하는 단일 아카이브 파일 을 작성하고 작성하는 것 입니다. 백업 프로그램 및 * nix 명령 'tar'은 이러한 아카이브 파일을 출력 할 수 있습니다. ( 'tar'는 아카이브 파일 만 처리하며 보관 + 압축 유틸리티와 같은 압축을 사용하지 않습니다.) 가장 빠른 백업 방법은 장치의 파일 시스템이 아닌 블록 장치에 쓰는 것이므로 소스 파일 시스템은 다음과 같습니다. 무시되고 (더 많은 데이터로 처리됨) 소스 장치의 블록 별 이미지 복사가 수행 될 수 있습니다.
(비유에 결함이 있음을 명심하십시오. 의견에 의견을 남겨주세요.)
==
샘이라고 부르 자. 한 바구니에서 다른 바구니로 계란을 옮기고있다.==
내가 추측하는 것입니다. 여기서 중요하지 않습니다.==
계란 볼륨. robbin의 계란 대 draggon의 계란을 생각하십시오.그래서 샘은 농장에서 일하는 사람이 있기 때문에 계란을 한 바구니에서 다른 바구니로 옮겨야합니다. 이 농장에는 용과 신화적인 바다 짐승을 포함하여 다양한 알을 낳는 동물들이 있습니다. 샘은 이것이 몇 가지 이유로 굉장하다고 생각합니다. (정말 중요하지는 않지만 이것은 내 비유입니다)
Sam은 2 개의 바구니로 강가에 오한을합니다. 바구니 중 하나는 계란이 들어있는 바구니입니다. 바구니에 든 계란의 크기는
100 bytes
바구니 안에 공간 처럼 차지하는 로빈 알에
2.7Gb
.샘은 알을 움직이기 시작해야하기 때문에 알을 잡아 움직이기 시작합니다. 그가 용의 달걀을 먼저 옮기기로 결정했다고 가정 해 봅시다. 이제 계란은 매우 거대하고 밀도가 높기 때문에 물건을 다른 바구니에 넣는 데 시간이 걸립니다.
샘은 용의 알을 다른 바구니에 넣고 화나게합니다. 일이 너무 많은 공간을 차지했기 때문에 힘들었습니다. 그것의 이동은 단 하나의 알을 위해 오래 걸렸습니다.
샘은 첫 번째 바구니로 돌아가서 다른 알을 gra습니다. 그는 자신이 정말로 큰 것을 1 개만 가지고 있다는 것을 알고 있습니다. 그러나 100,000,000,000 개의 로빈 알이 남아 있습니다.
보다시피, 샘의 오후는 망가졌습니다. 그의 자연적인 성향은 디노-에그가 움직여야하는 것이 더 나빠질 것이라는 점입니다. 계란과 바구니에 대해 이야기 할 때 의미가 있지만 컴퓨터는 100,000,000,000과 같은 숫자를 처리합니다.
작은 파일 몇 개를 큰 파일 몇 개에 비해 이동하는 데 시간이 오래 걸리는 이유에 대한 답은 파일 이동 작업과 관련된 비용과 관련이 있습니다. 작은 파일이 많을수록 해당 작업을 수행하는 데 더 많은 시간이 필요합니다. 이것을 보는 또 다른 방법은 정보 밀도에 대해 이야기하는 것입니다.
FAT 읽기, 헤드 위치 변경, 파일 변경시 파일 열기-모두 시간이 필요합니다