기가비트 연결에서 Teracopy는 31MB / s를 수행하지만 Windows 8은 초당 ~ 109MB로 작동합니까?
정확히 무엇이 원인입니까? Teracopy를 통해 이러한 속도를 활성화 할 수 있습니까? 나는 Teracopy가 가지고있는 추가 기능을 실제로 파헤 치고 있습니다.
두 단어 : 검증 및 캐시
기술 설명
이것은 Windows 탐색기로 파일을 복사하는 일반적인 절차입니다.
- 소스 드라이브에서 메모리로 데이터 청크 읽기
- 시스템을 통해 청크 보내기
- 대상 드라이브에 청크 쓰기
- 아직 완료하지 않은 경우 1 단계로 돌아가십시오.
이것은 간단하고 짧게 보입니다. 이 전송 알고리즘을 사용하면 파일의 각 바이트가 두 번만 처리됩니다 (하나는 읽기, 하나는 쓰기).
그러나 Windows는 메모리를 사용하여 (드라이브 자체와 마찬가지로) 일부 데이터를 캐시합니다. 따라서 이전 청크의 쓰기가 완료되기를 기다렸다가 다음 청크 를 읽는 대신 이전 청크를 계속 쓰는 동안 새 청크를 읽을 수 있습니다 . 분명히 이것은 영원히 참을 수는 없지만 Windows는 남아있는 여유 메모리를 모두 임시 버퍼로 사용하여 메모리에서 읽은 파일이 전부는 아니지만 대부분을 저장합니다.
하나의 드라이브에서 다른 드라이브로 큰 파일 또는 많은 파일을 포함하는 폴더를 복사 한 다음 두 파일을 즉시 비교하면 캐싱이 실제로 작동하는 것을 볼 수 있습니다. 파일이 아직 메모리에 있으므로 드라이브에서 실제로 읽지 않기 때문에 나중에 비교할 때보 다 비교가 훨씬 빠릅니다.
메모리가 매우 빠르며 읽기 속도가 쓰기 속도보다 약간 빠르기 때문에 최종 전송 속도는 대상 드라이브의 쓰기 속도에 의해서만 제한됩니다.
Teracopy는 Explorer가 수행하지 않는 파일 전송 속도를 저하시킬 수있는 두 가지 작업을 수행 할 수 있습니다.
캐시를 버리고 드라이브에서 직접 읽습니다.
대상이 올바르게 작성되었는지 확인
전송 중 기본 오류 만 확인하는 Explorer와 달리 Teracopy는 전송 미디어 (네트워크 / 드라이브 케이블 등)의 문제로 인해 발생할 수있는 데이터 손상을 방지하기 위해 실제로 데이터가 대상 드라이브에 올바르게 기록되었는지 확인할 수 있습니다. ) 또는 드라이브 자체 (불량 섹터 등)를 수행하면 대상 에서 파일을 읽어 원본과 비교해야합니다.
사용 된 알고리즘과 파일 크기에 따라 탐색기의 두 가지와 달리 파일 / 파일 청크마다 세 가지 드라이브 작업 ( 최소한 3 개)까지 검증을 최적화 할 수 있습니다 . 소스에서 파일을 읽고, 파일을 대상으로 보내고 대상에서 파일을 읽습니다.
Teracopy (HDD 최적화 알고리즘 사용)를 사용하여 파일을 복사하면 어떻게되는지 확인하십시오.
- 소스 드라이브에서 청크 읽기
- 소스 드라이브에서 읽은 청크 해시
- 시스템을 통해 청크 보내기
- 대상 드라이브에 쓰기
- 캐시 지우기
- 대상 드라이브에서 청크를 다시 읽습니다.
- 대상 드라이브에서 청크 해시
- 해시 비교
- 다음 단계 결정
- 해시가 일치하지 않으면 오류를 표시하고 사용자에게 조치를 요청하십시오.
- 해시가 일치하고 완료되지 않은 경우 1 단계로 돌아가십시오.
문제는 전송하는 동안 파일을 캐시하면 대상 드라이브의 실제 데이터를 읽지 않고 소스에서 메모리에 캐시 된 사본을 읽고 있기 때문에 비교가 쓸모 없게된다는 것입니다. 따라서 올바르게 확인하려면 캐시를 지워야합니다. 이것은 각 읽기 및 쓰기 후에 수행 될 수 있으며 (이는 상당한 크기의 파일에 대해 셀 수없이 많은 시간이 걸리는 추가 작업) 또는 전체 파일이 전송 된 후에 한 번만 수행 될 수 있습니다.
아래 스크린 샷에 따르면, TeraCopy 는 파일이 전송 된 후 가 아닌 확인 을 수행합니다 . 즉,이 CPU / RAM 최적화 전송 알고리즘을 대신 사용합니다.
- 소스 드라이브에서 청크 읽기
- 시스템을 통해 청크 보내기
- 대상 드라이브에 쓰기
- 아직 완료하지 않은 경우 1 단계로 돌아가십시오.
- 복사가 완료되었으므로 캐시를 지우고 확인 중입니다.
- 소스 드라이브에서 청크 읽기
- 대상 드라이브에서 청크 해시
- 대상 드라이브에서 청크 읽기
- 대상 드라이브에서 청크 해시
- 해시 비교
- 다음 단계 결정
- 해시가 일치하지 않으면 오류를 표시하고 사용자에게 조치를 요청하십시오.
- 해시가 일치하고 완료되지 않은 경우 6 단계로 돌아가십시오.
이 알고리즘은 CPU 및 RAM에 약간의 부담을주지 않지만, 이제 각 파일을 4 번 처리해야하기 때문에 드라이브에 더 많은 부담을줍니다 . 소스에서 전체 파일을 읽고 대상에 쓰기 소스에서 다시 읽고 대상에서 다시 읽습니다.
(TeraCopy가 네트워크 전송에 최적화 된 경우 전체 파일을 두 번째로 전송하여 확인하지 않고 훨씬 작은 해시 만 보낼 수 있지만 현재는 그렇지 않은 것으로 보이며 네트워크 드라이버는 동일하게 취급됩니다. 로컬 드라이브로 실제로 소스를 다시 읽습니다.)
기본적으로 TeraCopy는 캐시를 확인하거나 사용하지 않습니다. 전송 속도를 (또는 더 정확하게, 것이라고 확인하지 느려지지 캐시를 사용하지 않는 동안, 그것을 아래로) 것 을 늦출.
신청
특정 속도 결과를 확인하려면 설정을 변경했는지 확인해야합니다. 그런 다음 다른 설정으로 얻을 수있는 속도의 종류를 대략적으로 시도 할 수 있습니다 (상호 작용할 가능성이 있으므로 더하기 또는 빼기의 단순한 문제는 아닙니다).
즉, 숫자를 사용하여 커서 계산을 해 봅시다.
- 로컬 파일 전송 : 875Mbps (예 : 드라이브 속도)
- 네트워크 속도 : 1Gbps = 119.21MBps
- Windows 탐색기를 통해 복사 : 109MBps
- TeraCopy를 통한 복사 : 34MBps
방금 살펴보면 탐색기의 파일 전송이 네트워크 처리량을 거의 최대화하고 있음을 알 수 있습니다. 1Gbps의 링크 1,000,000,000 동일 비트 의 초당 바이너리 단위 의 바이트 , 119MBps이다. 익스플로러는 109MBps를 클럭킹하고 있으며 나머지 10MBps (이전 최대 값으로 충분했던 :^Þ
)는 오버 헤드, 백그라운드로드 및 조각화로 쉽게 설명 할 수 있습니다.
(전송 속도는 네트워크 속도와 거의 같으므로 Explorer의 파일 전송이 단방향이고 각 파일의 단일 사본 만 전송된다고 가정 할 수 있습니다.) Explorer는 파일 당 두 개의 파일 액세스에 대해 110MBps를 가져옵니다.
이제 TeraCopy를 사용하십시오. TeraCopy가 Explorer 속도의 거의 3 분의 1을 받고있는 것 같습니다.
환경 설정 대화 상자가 사용하는 알고리즘을 정확하게 나타내는 지 여부에 따라 TeraCopy는 실제로 전체 소스 파일을 두 번 전송하여 사본을 확인할 수 있습니다. 이로 인해 처리량이 절반으로 줄어 듭니다. 캐시가 켜져 있으면 새 청크를 보내기 전에 각 쓰기가 완료 될 때까지 기다려야하므로 속도도 줄어 듭니다. 검증과 결합하면 훨씬 더 무너질 수 있습니다.
확인 및 캐싱을 해제 한 경우 전송 속도 34MBps가 적당 해 보입니다. 확인을 끄고 캐싱을 켜면 탐색기와 거의 같아야합니다 (TeraCopy가 사용하는 파일 전송 코드와 탐색기가 사용하는 파일 전송 코드의 차이에 따라 약간 더 적거나 더 커질 수 있음).
거의 10GB를 전송하려는 분위기가 있다면 설정을 변경하고 4 개의 순열 각각에 대한 전송을 다시 실행하고 얻은 속도를 기록해 두어 (안전하게 캐시가 정렬되도록 주문하십시오) 런 사이 :) V+C+, V+C-, V-C+, V-C-
.