900,000 개의 파일을 빠르게 복사하려면 어떻게합니까?


9

총 30 기가 바이트 인 900,000 개의 작은 파일이 포함 된 일부 데이터를 Windows 컴퓨터에 복사해야합니다. 그러나 1 시간 30 분 안에 복사 및 설정이 가능해야하며, 파일이 많기 때문에 USB 하드 드라이브를 복사하는 데 5 시간 이상 걸릴 수 있습니다. 일종의 블록 복사와 같이 이것을 처리하는 더 좋고 빠른 방법이 있습니까? 감사


8
이는 단일 비 SSD 디스크에서 파일 기반 복사본에 대한 매우 공격적인 대상 이 될 것 입니다. 모든 파일을 열거하고 많은 파일의 파일 시스템 항목 및 메타 데이터를 처리하는 데 상당한 시간이 걸립니다.
afrazier

5
하드 드라이브를 제거하고 대상에 배치 할 수 있습니까? 이것은 마더 보드 백플레인을 통해 전송하는 가장 빠른 속도입니다.
iTom


이 질문을 블로그로보고 싶으십니까? Meta의 답변이나 투표로 도움을 받으십시오 .
Tamara Wijsman

답변:


7

파일 수가 많으면 처리 할 파일이 더 적도록 tar 아카이브를 작성하는 것이 가장 좋습니다. USB 2.0 외장 하드 드라이브를 사용하는 경우 USB 3.0, eSATA를 사용하거나 빠른 로컬 네트워크를 사용해야합니다.

소스 OS는 무엇입니까? 두 운영 체제가 모두 Linux 인 경우 tar, gzip 및 ssh를 통해 파일을 대상 시스템으로 파이프 할 수 있습니다. Windows에 cygwin을 설치하여 Windows에 이러한 유형의 기능을 사용할 수도 있습니다.

업데이트 :
" Tar 및 SSH를 사용하여 SCP 속도 향상 "게시물에 ssh를 통해 tar 내용을 보내는 데 필요한 명령이 설명되어 있습니다.


tar는 여전히 모든 파일을 하나씩 읽습니다.
Tomas Andrle

예, 그러나 한 번만 수행하면 개별 파일을 처리하여 scp와 같은 다른 명령이 지연되지 않습니다. 파일을 대상 시스템의 tar 아카이브에 보관할 수 있으면 많은 파일 대신 하나의 파일을 작성하는 데 시간을 절약 할 수 있습니다.
dabest1

USB 연결에 병목 현상이 있다고 가정합니다. @arcyqwerty가 제안한 것처럼 드라이브의 원시 이미지를 가져 오는 것이 나에게 가장 좋은 솔루션처럼 보입니다. 그래도 실제 결과가 궁금 할 것입니다. 아마도 완전히 틀 렸습니다.
Tomas Andrle

1
@TomA- 많은 작은 파일을 다룰 때의 경험 에서 하드 드라이브 는 병목 현상입니다. 각 파일 읽기에는 할당 비트 맵에 대한 헤드 탐색이 필요하고 실제 파일 내용에 대한 헤드 탐색이 필요합니다. 결과적으로 하드 드라이브는 대부분의 시간을 찾고 실제로 파일을 읽는 데 거의 시간을 소비하지 않습니다.
가짜 이름

2
예를 들어, 1K 파일을 사용하면 기가비트 LAN보다 ~ 1-5MBps가됩니다. 큰 파일 (각 기가 바이트)을 사용하면 ~ 80-90 MBps를 얻습니다. 순차 읽기에 관한 모든 것입니다.
가짜 이름

8

USB 인터페이스와 SATA / ATA에서 하드 드라이브를 제거 할 수 있으면 대상 컴퓨터에 하드 드라이브를 설치합니다. 다른 사람들이 지적했듯이 훨씬 빠른 전송 속도를 얻을 수 있습니다. 복사를 위해 Windows를 사용한다고 가정하면 간단한 ROBOCOPY를 수행합니다. 다른 대안이 있지만 실제로 원하는만큼 빠릅니다.

ROBOCOPY /E /B /MT 'source' 'destination'

나는이 모든 파일을 압축하지 않으려 고 노력했지만 압축하고 이동하는 시간이 단순히 파일 이동을 초과 할 가능성이 높습니다.

* robocopy에 대한 / MT 옵션이 추가되었습니다. 멀티 스레드 환경에있을 때 전송 속도를 크게 높일 수 있습니다.


예정 /MT지역의 단일 디스크 전송에 도움이, 또는 대규모 디스크 탈곡의 원인? 서버간에 큰 공유를 복사하는 것이 일반적이지만 네트워크를 통해 대기 시간이 추가되고 RAID 어레이의 IOPS가 향상되는 경우가 종종 있습니다.
afrazier

이 부분에 대해서는 너무 많이 언급 할 수 없습니다. 나는 robocopy를 사용하여 매일 밤 내 모든 VS 프로젝트를 백업하지만 약 10GB의 가치가 있습니다. 이미 존재하는 파일은 복사되지 않기 때문에 시간이 걸립니다. : 나는이있는 Robocopy는 몇 달 전에 벤치 마크 발견했다 demartek.com/Reports_Free/...
리 해리슨

내 경험상, 드라이브 인클로저의 USB-SATA 어댑터가 기본 명령 대기열을 지원하면 / MT 스위치에서 성능이 크게 향상됩니다.
longneck

6

전체 폴더 / 드라이브의 이미지를 찍어 볼 수 있습니다

Linux 시스템 dd에서는 파일 시스템의 원시 사본을 가져 와서 하나의 큰 파일로 복사하는 데 사용할 수 있습니다 .

이미지를 Windows로 추출하려면 cygwin 또는 dd이미지 를 처리 할 수있는 프로그램을 설치해야합니다 .


그게 티켓이야
Tomas Andrle

3

설정하려는 컴퓨터에서 소스 파일이있는 디스크를 설치하고 디스크를 디스크로 전송하십시오. USB를 잊어 버리십시오. 유선을 통해 전송하더라도 (기계를 함께 네트워크로 연결) USB (USB 2.0 및 1Gbps NIC 가정)보다 빠릅니다. 이 이벤트가 반복되는 경우 대신 복제를 살펴보십시오.


3

옵션 rsync과 함께 사용하십시오 z.

-z,         --compress              compress file data during the transfer
            --compress-level=NUM    explicitly set compression level
            --skip-compress=LIST    skip compressing files with suffix in LIST

네트워크를 통한 전송 속도가 빨라집니다. 따라서 대부분의 경우 유용하지 않습니다.

좀 더 읽은 후에 하나의 로컬 하드 드라이브에서 다른 로컬 하드 드라이브로 데이터를 복사 할 때 '-z'플래그를 사용하면 안된다는 것을 깨달았습니다. 오버 헤드가 증가합니다. @FakeName의 의견에 감사드립니다.


1
rsync는 로컬 전송 (또는 LAN을 통해)을 압축하지 않습니다. 또한 실제 문제는 파일 을 읽는 데 걸리는 시간이기 때문에 파일 을 읽는 것이 아니라 유선으로 보내지 않기 때문에 이점이 없습니다 .
가짜 이름

@FakeName +1 당신이 옳습니다. 약간의 독서 후 나는 당신의 요점을 얻었습니다. 내 답변을 업데이트했습니다.
Sachin Divekar

1

하드 드라이브의 한계에 빠르게 접근하고 있습니다. 실제로 현재 상용 드라이브에서는 파일 별 복사 작업으로 전송 시간을 계산할 수 없습니다.

각 파일에 1 개의 HD 탐색이 필요하고 탐색 시간이 7ms라고 가정하면 (실제로는 약간 이상적이며, 볼륨 비트 맵이 램으로 캐시되지 않는 한 각 파일에 2 회의 탐색 이 필요함 ), 최대 ~ 142 개의 파일 / 초 ( \ $ \ frac {1000} {7} = 142.8 ... \ $).

OP 사양 (30GB, 900,000 개 파일)에서 파일 당 ~ 33K (\ $ \ frac {30,000,000k} {900,000} = ~ 33.3 ... \ $. 33KB * 142 = 4.68MBps입니다.

5GBps에서 30GB를 전송 하는 최소 시간은 ~ 1 시간, 40 분 (\ $ \ frac {30,000} {5} = = 6,000 \ $ 초입니다. \ $ \ frac {6,000} {60} = 100 \ $ 분 또는 1:40 시간)

따라서 ~ 5MBPS보다 빠른 속도를 달성하는 것은 불가능 하며 이상적인 드라이브 (및 탐색 조작이 적습니다. 이는 파일 당 하나의 탐색을위한 것입니다. 실제로는 2입니다). 디스크 성능에 의해 전적으로 제한 됩니다.


성능을 향상시키는 유일한 방법은 전체 파일 시스템 및 파티션을 순차적으로 복사하는 것입니다. dd리눅스에서 이것을 할 수 있습니다.

무엇을하려고합니까?


TeX는 다른 사람을 위해 일하고 있습니까? 그것은 나를 위해 렌더링되지 않는 것 같습니다.
가짜 이름

0

7zip을 사용하여 파일을 하나의 파일로만 아카이브하십시오. 가능하면 노트북에 대한 addhoc 연결로 WLAN을 사용하십시오.


1
또는 더 나은, 직접 이더넷 연결, 바람직하게는 gig-e
Journeyman Geek

0

@arcyqwery의 답변과 관련하여 압축하고 동시에 하나의 큰 파일로 바꿀 수 있습니다. 이것은 프로세스 속도를 향상시킵니다.

일반적으로 기본 윈도우 복사 성능보다 빠르기 때문에 TeraCopy 와 같은 프로그램을 사용하는 것이 좋습니다. 그래도 비슷한 상황에서 테스트하여 확인해야합니다.


0

나는 비슷한 경우가 있었다. 안티 바이러스를 끄고 복사 속도가 3MB / s에서 12MB / s로 변경되었습니다.

여기에 이미지 설명을 입력하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.