Làm cách nào để nhanh chóng sao chép 900.000 tệp?


9

Tôi cần sao chép một số dữ liệu bao gồm 900.000 tệp nhỏ với tổng dung lượng khoảng 30 gigabyte vào máy tính windows. Tuy nhiên, nó cần có thể được sao chép và thiết lập trong vòng một tiếng rưỡi, và có thể mất hơn 5 giờ để sao chép ổ cứng USB chủ yếu là do số lượng tệp điên rồ. Có cách nào tốt hơn / nhanh hơn để giải quyết vấn đề này, chẳng hạn như thực hiện một số loại sao chép khối? Cảm ơn


8
Đó sẽ là một mục tiêu rất tích cực cho bất kỳ bản sao dựa trên tệp nào từ một đĩa không phải SSD. Chỉ cần liệt kê tất cả các tệp và xử lý các mục và siêu dữ liệu của hệ thống tệp cho nhiều tệp đó sẽ mất một lượng thời gian đáng kể.
afrazier

5
Bạn có thể chỉ cần tháo ổ cứng và đặt vào đích? đây sẽ là tốc độ nhanh nhất, chuyển qua bảng nối đa năng của bo mạch chủ.
iTom


Bạn muốn xem câu hỏi này viết blog? Trợ giúp bằng cách trả lời hoặc bỏ phiếu tại Meta .
Tamara Wijsman

Câu trả lời:


7

Với số lượng tệp lớn, tốt nhất là tạo tệp lưu trữ tar để bạn có ít tệp hơn để xử lý. Nếu bạn đang sử dụng ổ cứng ngoài USB 2.0, bạn nên xem qua sử dụng USB 3.0, eSATA hoặc sử dụng mạng cục bộ nhanh.

Hệ điều hành nguồn của bạn là gì? Nếu cả hai hệ điều hành của bạn là Linux, bạn có thể dẫn các tệp qua tar, gzip và ssh đến máy đích. Bạn cũng có thể cài đặt cygwin trên Windows để có được loại chức năng này cho Windows.

Cập nhật: Bài viết
" Sử dụng Tar và SSH để cải thiện Tốc độ SCP " mô tả các lệnh cần thiết để gửi nội dung tar qua ssh.


tar vẫn sẽ đọc tất cả các tệp một.
Tomas Andrle

Có, nhưng bạn sẽ chỉ làm một lần và các lệnh khác như scp sẽ không bị trì hoãn bằng cách xử lý các tệp riêng lẻ. Nếu các tệp có thể được lưu trong kho lưu trữ tar trên máy đích, thì bạn cũng đang tiết kiệm thời gian viết một tệp thay vì nhiều tệp.
dabest1

Tôi cho rằng kết nối USB là nút cổ chai. Vì vậy, chụp ảnh thô của ổ đĩa như @arcyqwerty gợi ý có vẻ như là giải pháp tốt nhất với tôi. Tôi tò mò muốn xem một số kết quả thực tế, có lẽ tôi đã hoàn toàn sai!
Tomas Andrle

1
@TomA - Theo kinh nghiệm của tôi khi xử lý nhiều tệp nhỏ, ổ cứng là nút cổ chai. Mỗi lần đọc tệp yêu cầu tìm kiếm đầu vào bitmap Phân bổ, và sau đó tìm kiếm đầu khác đến nội dung tệp thực tế. Kết quả là, ổ cứng dành phần lớn thời gian để tìm kiếm và rất ít thời gian thực sự đọc tệp.
Tên giả

2
Ví dụ, với các tệp 1K, tôi nhận được ~ 1-5 MBps trên lan gigabit của mình. Với các tệp lớn (mỗi gigabyte), tôi nhận được ~ 80-90 MBps. Đó là tất cả về các lần đọc tuần tự.
Tên giả

8

Nếu ổ cứng có thể được gỡ bỏ khỏi giao diện USB và vào SATA / ATA, tôi sẽ cài đặt nó vào máy tính đích. Bạn sẽ nhận được tốc độ truyền nhanh hơn nhiều, như những người khác đã lưu ý. Để sao chép, giả sử bạn đang ở trên Windows, tôi sẽ thực hiện ROBOCOPY đơn giản. Nó nhanh như bạn có thể hy vọng, mặc dù có những lựa chọn thay thế khác.

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

Tôi cố gắng tránh nén tất cả các tệp này, rất có thể thời gian để nén và di chuyển sẽ vượt quá đơn giản là di chuyển các tệp.

* Đã thêm tùy chọn / MT cho robocopy. Nó có thể tăng tốc độ chuyển rất nhiều khi bạn ở trong môi trường đa luồng.


Sẽ /MTgiúp chuyển giao đĩa đơn cục bộ, hoặc gây ra sự cố đĩa lớn? Việc sao chép các chia sẻ lớn giữa các máy chủ là phổ biến, nhưng chúng thường có cả độ trễ do thêm mạng và cải thiện IOPS từ mảng RAID.
afrazier

Tôi thực sự không thể bình luận quá nhiều về khía cạnh này. Tôi sử dụng robocopy để sao lưu tất cả các dự án VS của mình mỗi đêm, mặc dù nó chỉ có giá trị khoảng 10 GB. Chỉ mất một chút thời gian vì các tệp đã tồn tại không được sao chép. Tôi đã tìm thấy những điểm chuẩn Robocopy này vài tháng trước: demartek.com/Reports_Free/iêu
Lee Harrison

theo kinh nghiệm của tôi, nếu bộ chuyển đổi USB sang SATA trong vỏ ổ đĩa của bạn hỗ trợ hàng đợi lệnh gốc thì tôi sẽ tăng hiệu suất đáng kể từ công tắc / MT.
longneck

6

Bạn có thể thử chụp ảnh toàn bộ thư mục / ổ đĩa

Trên các hệ thống Linux, bạn có thể sử dụng ddđể có được một bản sao thô của hệ thống tệp và sao chép nó dưới dạng một tệp lớn.

Để trích xuất hình ảnh lên Windows, bạn có thể cần cài đặt cygwin hoặc chương trình có thể xử lý ddhình ảnh.


Đó là vé.
Tomas Andrle

3

Cài đặt đĩa nơi tệp nguồn nằm trong máy tính bạn đang thiết lập và chuyển đĩa sang đĩa. Quên USB. Ngay cả việc truyền qua dây (nối các máy với nhau) sẽ nhanh hơn USB (Giả sử usb 2.0 và 1Gbps NIC). Nếu đây là một sự kiện định kỳ, thay vào đó hãy nhìn vào bản sao.


3

Sử dụng rsyncvới ztùy chọn.

-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

Điều này sẽ tăng tốc độ truyền qua mạng. Vì vậy, hầu hết có lẽ không hữu ích trong trường hợp của bạn.

Sau khi đọc thêm tôi nhận ra rằng, Chúng ta không nên sử dụng cờ '-z' khi sao chép dữ liệu từ ổ cứng cục bộ này sang ổ cứng khác, nó sẽ tăng chi phí. Cảm ơn bình luận từ @FakeName.


1
rsync không nén cho chuyển cục bộ (hoặc qua mạng LAN, tôi tin). Ngoài ra, điều này sẽ không có lợi ích gì, vì vấn đề thực sự là thời gian để đọc các tệp, không gửi chúng qua dây (vì mỗi tệp được đọc sẽ mất tối thiểu hai thao tác tìm kiếm).
Tên giả

@FakeName +1 bạn đã đúng, sau khi đọc xong tôi đã hiểu ý của bạn. Tôi đã cập nhật câu trả lời của tôi.
Sachin Divekar

1

Bạn đang nhanh chóng tiếp cận những hạn chế của ổ cứng của bạn. Trong thực tế, với các ổ đĩa hàng hóa hiện tại, không thể thực hiện thời gian chuyển của bạn bằng thao tác sao chép trên mỗi tệp.

Giả sử mỗi tệp yêu cầu 1 HD thời gian tìm kiếm và tìm kiếm là 7 ms (một chút lý tưởng hóa, thực tế, mỗi tệp sẽ yêu cầu hai lần tìm kiếm, trừ khi bitmap âm lượng được lưu trong ram), tốt nhất bạn sẽ quản lý ~ 142 tệp / giây ( \ $ \ frac {1000} {7} = 142.8 ... \ $).

Với thông số kỹ thuật OP (30 GB, 900.000 tệp) có giá trị ~ 33K mỗi tệp (\ $ \ frac {30.000.000.000} {900.000} = ~ 33.3 ... \ $. 33KB * 142 = 4,68 MBps.

Thời gian tối thiểu để chuyển 30 GB ở mức 5 MBps, là ~ 1 giờ, 40 phút (\ $ \ frac {30.000} {5} = = 6.000 \ $ giây. \ $ \ Frac {6.000} {60} = 100 \ $ phút, hoặc 1:40 giờ)

Do đó, không thể đạt được tốc độ tốt hơn ~ 5 MBPS, và đó là với một ổ đĩa lý tưởng (và ít hoạt động tìm kiếm hơn. Đây là một tìm kiếm cho mỗi tệp. Thực tế, nó sẽ là hai). Bạn bị giới hạn hoàn toàn bởi hiệu suất đĩa.


Cách duy nhất để có hiệu suất tốt hơn sau đó là sao chép toàn bộ hệ thống tệp & phân vùng theo tuần tự. ddcó thể làm điều này trên linux.

Bạn đang cố làm gì vậy?


TeX có làm việc cho ai khác không? Nó dường như không được kết xuất cho tôi.
Tên giả

0

Hãy thử 7zip để chỉ lưu trữ các tệp vào một tệp. Nếu có thể, hãy sử dụng mạng WLAN có kết nối adhoc với máy tính xách tay.


1
hoặc tốt hơn nữa là kết nối ethernet trực tiếp, tốt nhất là gig-e
Journeyman Geek

0

Liên quan đến câu trả lời của @arcyqwery, bạn có thể nén nó và đồng thời biến nó thành một tệp lớn. Điều này sẽ tăng tốc quá trình một số.

Cũng có thể đáng để sử dụng một chương trình như TeraCopy , vì nó thường nhanh hơn hiệu suất sao chép cửa sổ mặc định. Bạn nên kiểm tra với các trường hợp tương tự trong trường hợp của bạn để kiểm tra mặc dù.


0

Tôi đã có một trường hợp tương tự. Tôi đã tắt Anti-virus, tốc độ sao chép thay đổi từ 3MB / s thành 12MB / s.

nhập mô tả hình ảnh ở đây

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.