Muszę skopiować na komputer z systemem Windows niektóre dane, które zawierają 900 000 małych plików o łącznej wielkości około 30 gigabajtów. Jednak trzeba go skopiować i skonfigurować w niecałe półtorej godziny, a kopiowanie dysku twardego USB może potrwać ponad 5 godzin, głównie z powodu szalonej ilości plików. Czy istnieje lepszy / szybszy sposób radzenia sobie z tym, na przykład kopiowanie bloków? Dzięki
usb-storage
file-transfer
Joe Lyga
źródło
źródło
Odpowiedzi:
Przy dużej liczbie plików najlepiej jest utworzyć archiwum tar, aby mieć mniej plików do czynienia. Jeśli używasz zewnętrznego dysku twardego USB 2.0, powinieneś skorzystać z USB 3.0, eSATA lub skorzystać z szybkiej sieci lokalnej.
Jaki jest twój źródłowy system operacyjny? Jeśli oba systemy operacyjne to Linux, możesz przesyłać pliki przez pliki tar, gzip i ssh do komputera docelowego. Możesz zainstalować cygwin w systemie Windows, aby uzyskać tego rodzaju funkcje również w systemie Windows.
Aktualizacja:
„ Używanie Tar i SSH do poprawy prędkości SCP ” opisuje polecenia potrzebne do wysyłania zawartości tar przez ssh.
źródło
Jeśli dysk twardy można usunąć z interfejsu USB na SATA / ATA, zainstalowałbym go na komputerze docelowym. Otrzymasz znacznie szybsze prędkości przesyłania, jak zauważyli inni. Do kopiowania, zakładając, że jesteś w systemie Windows, zrobiłbym prosty ROBOCOPY. Jest tak szybki, jak naprawdę możesz się spodziewać, choć istnieją inne alternatywy.
Staram się jednak unikać kompresji wszystkich tych plików, istnieje duża szansa, że czas na kompresowanie i przeniesienie przekroczyłby po prostu przeniesienie plików.
* Dodano opcję / MT dla robocopy. Może znacznie przyspieszyć przesyłanie w środowisku wielowątkowym.
źródło
/MT
pomagać lokalnych transferów pojedynczego dysku lub spowodować ogromne lanie dysku? Powszechne jest kopiowanie dużych udziałów między serwerami, ale często oba mają dodatkowe opóźnienie z powodu przejścia przez sieć i ulepszone IOPS z macierzy RAID.Możesz spróbować zrobić zdjęcie całego folderu / dysku
W systemach Linux możesz użyć
dd
surowej kopii systemu plików i skopiować go jako pojedynczy duży plik.Aby wyodrębnić obraz do systemu Windows, może być konieczne zainstalowanie programu cygwin lub programu, który może przetwarzać
dd
obrazy.źródło
Zainstaluj dysk, na którym znajdują się pliki źródłowe, na konfigurowanym komputerze i przenieś dysk na dysk. Zapomnij o USB. Nawet przesyłanie przewodowe (łączenie maszyn w sieć razem) byłoby szybsze niż USB (przy założeniu, że USB 2.0 i NIC 1 Gb / s). Jeśli jest to zdarzenie cykliczne, zajrzyj do replikacji.
źródło
Użyj
rsync
zz
opcją.Zwiększy to szybkość przesyłania przez sieć. Prawdopodobnie nie jest to przydatne w twoim przypadku.
Po dłuższym czytaniu zdałem sobie sprawę, że nie powinniśmy używać flagi „-z” podczas kopiowania danych z jednego lokalnego dysku twardego na inny, ponieważ zwiększa to obciążenie. Dziękujemy za komentarz od @FakeName.
źródło
Szybko zbliżasz się do ograniczeń swojego dysku twardego. W rzeczywistości przy obecnych dyskach towarowych niemożliwe jest określenie czasu transferu za pomocą operacji kopiowania poszczególnych plików.
Zakładając, że każdy plik wymaga 1 wyszukiwania HD, a czas wyszukiwania wynosi 7 ms (co jest nieco wyidealizowane, realistycznie, każdy plik będzie wymagał dwóch wyszukiwań , chyba że bitmapa woluminu jest buforowana w pamięci RAM), najlepiej będzie zarządzać ~ 142 plikami / sek. ( \ $ \ frac {1000} {7} = 142,8 ... \ $).
Ze specyfikacjami OP (30 GB, 900 000 plików), co stanowi ~ 33 KB na plik (\ $ \ frac {30 000 000 tys.} {900 000} = ~ 33,3 ... \ $. 33KB * 142 = 4,68 MBps.
minimum czas transferu 30 GB w 5 Mbps, wynosi około 1 godziny, 40 minut (\ $ \ Frac {30000} {5} = = 6,000 \ $ s. \ $ \ Frac {6000} {60} = 100 \ $ minut lub 1:40 godzin)
Dlatego niemożliwe jest osiągnięcie prędkości lepszej niż ~ 5 MBPS, a to przy idealnym dysku (i mniejszej liczbie operacji wyszukiwania. To jest dla jednego wyszukiwania na plik. Realistycznie byłoby to dwa). Jesteś ograniczony całkowicie przez wydajność dysku.
Jedynym sposobem na lepszą wydajność jest skopiowanie całego systemu plików i partycji sekwencyjnie.
dd
można to zrobić na systemie Linux.Co próbujesz zrobić?
źródło
Spróbuj 7zip, aby zarchiwizować pliki tylko w jednym pliku. Jeśli to możliwe, użyj sieci WLAN z połączeniem adhoc z notebookiem.
źródło
W związku z odpowiedzią @arcyqwery możesz go skompresować i jednocześnie przekształcić w jeden duży plik. Przyspieszy to proces.
Warto również użyć programu takiego jak TeraCopy , ponieważ zwykle jest on szybszy niż domyślna wydajność kopiowania w systemie Windows. Powinieneś jednak przeprowadzić test w podobnych okolicznościach w swoim przypadku, aby to sprawdzić.
źródło
Miałem podobny przypadek. Wyłączyłem antywirusa, szybkość kopiowania zmieniona z 3 MB / s na 12 MB / s.
źródło