Czy algorytm kopiowania plików (Ubuntu) Linux jest lepszy niż Windows 7?

13

Kopiowanie systemu Windows to prawdziwy bałagan od czasów systemu Windows Vista. Nawet Microsoft twierdzi, że poprawił wydajność, z punktu widzenia użytkownika, nie jest to całkiem widoczne. Nawet w przypadku pojedynczego pliku okno kopiowania pojawia się zbyt długo na „Obliczanie”, a następnie dokończenie kopiowania (nawet po 100% ukończeniu okno dialogowe pozostaje aktywne).

W tym samym czasie tworzyłem kopie zapasowe niektórych plików w systemie Ubuntu Linux. Czułem, że to jest naprawdę szybkie. Może to być uczucie spowodowane szybszymi aktualizacjami interfejsu użytkownika.

Przeczytałem post informacyjny Jeffa Atwooda kilka lat temu na temat kopiowania plików Windows . ale jakie są moje konkretne pytania

  • Czy wydajność pliku (Ubuntu) Linux jest lepsza niż Windows-7?
  • Czy oba algorytmy, Windows i Linux wykorzystują wiele wątków i mechanizm potokowy do poprawy prędkości? Jeśli tak, który z nich jest lepszy?
sarat
źródło
3
W systemie Windows xcopy, a nawet robocopy. Dużo lepiej. Na przykład za pomocą tego drugiego można wykonać dwa przejścia, po pierwsze, aby utworzyć wszystkie katalogi, ale nie kopiować żadnych plików, a po drugie, aby skopiować rzeczywiste pliki, nie powodując fragmentacji obiektu docelowego.
Kerrek SB
1
Lub RichCopy ( blogs.technet.com/b/ken i pobieranie )
patrz
Zależy również od systemu plików - twój system prawdopodobnie używa czegoś takiego ext3/4, co konkuruje tutaj z NTFS. Możesz także spróbować reiserfsi xfs- oba są zoptymalizowane do szybkich operacji z małymi plikami.
new123456
@KrekrekSB, proszę zamieść komentarz w odpowiedzi, abym mógł go głosować. (Właśnie dałem +1 komentarzowi, ale wiesz, co mam na myśli.) To jest odpowiedź.
CarlF
Należy zauważyć (choć 8 lat później!), Że Robocopy / CREATE, chociaż bardzo przydatne do replikacji pełnej struktury katalogów z pustymi plikami, samo w sobie nie zapobiega fragmentacji plików w systemie docelowym. Struktura jest tworzona w MFT, ale zawartość plików można nagrać w dowolnym miejscu. Zwykle nawet w jednym przejściu, jeśli Robocopy działa w trybie jednowątkowym i kopiuje jeden plik na raz, i tak nie powinno być fragmentacji (a uruchamianie go w trybie wielowątkowym jest złym pomysłem, ponieważ znacznie zmniejsza wydajność kopiowania z dysku twardego na dysk twardy, ponieważ napęd mechaniczny musi „szlifować” znacznie więcej).
GabrielB

Odpowiedzi:

6

Standardowe copywbudowane w Windows nie jest zbyt dobre, ale Windows zawiera dwa zaawansowane polecenia, które są znacznie bardziej wydajne: xcopyi robocopy. Narzędzie to jest szczególnie przydatne, gdy potrzebujesz pełnej kontroli nad zaawansowanymi funkcjami systemu plików, takimi jak listy ACL lub alternatywne strumienie danych robocopy.

Na przykład, jeśli kopiujesz dużą strukturę katalogów, możesz chcieć, aby cel nie był podzielony . Standardowe wywoływanie robocopyjest już całkiem dobre, ale ponieważ wpisy katalogu są aktualizowane w miarę tworzenia podkatalogów, nadal można uzyskać pofragmentowane katalogi. Aby temu zapobiec, możesz uruchomić robocopyw dwóch przebiegach, z których pierwszy tworzy tylko docelową strukturę katalogów bez kopiowania zawartości pliku, a drugi w rzeczywistości kopiuje treści plików.

Podsumowując, robocopyjest bardzo wydajny i w pełni świadomy funkcji NTFS.

Kerrek SB
źródło
Czy NTFS jest bardziej wydajny niż ext3 / 4?
sarat
W jaki sposób dwuprzebiegowa robocopy pomaga nam zmniejszyć fragmentację, ponieważ prawdziwa treść zostanie skopiowana później. Przydział dysku jest całkowicie kontrolowany przez menedżera plików nie?
sarat
Robię kilka sztuczek, takich jak używanie Beyond Compare do kopiowania plików. Czyli mogę uruchomić wiele operacji kopiowania, aby zmaksymalizować wykorzystanie przepustowości. Ale nie jestem pewien, jak bardzo będzie
podzielony
2
@ Sarath: Odnośnie fragmentacji: Wpisy katalogu rosną wraz z dodawaniem do katalogu nowych plików i podkatalogów. Jeśli po prostu naiwnie utworzysz katalog i zaczniesz wkładać pliki, w końcu oryginalny rekord katalogu będzie zbyt mały i musi zostać rozszerzony, ale teraz nie ma miejsca, ponieważ masz już dane pliku za nim. Dzięki tej /CREATEopcji tworzone są puste pliki i podkatalogi, które nie zajmują miejsca, a tym samym pozwalają na jednoznaczne zapisanie pozycji katalogu.
Kerrek SB
1
@ Sarath: Jeśli chodzi o porównywanie NTFS z Ext, nie mogę powiedzieć, ponieważ NTFS nie jest otwarty, a kwestia wydajności jest raczej niejasna. NTFS jest z pewnością świetną technologią z dużą liczbą funkcji. Tak naprawdę nie ma wyboru, ponieważ użyjesz NTFS w systemie Windows i Ext (lub BTRFS) w systemie Linux i to wszystko.
Kerrek SB
4

Szybkość, jaką widzisz w systemie Ubuntu Linux, to prawdopodobnie buforowanie plików. O ile mi wiadomo, kopiowanie plików w systemie Linux nie stara się zminimalizować użycia pamięci podręcznej plików.

W systemie Linux, gdy kopiujesz plik, który jest mniejszy niż około 50% pamięci RAM, cały plik jest kopiowany do pamięci podręcznej plików, a następnie zapisywany na dysk w miarę upływu czasu. Wygląda na to, że jest bardzo szybki, ale zmusza inne, bardziej przydatne pliki, do opuszczenia pamięci podręcznej. Mogą to być pliki pamięci podręcznej, wiadomości e-mail, pliki konfiguracji, pliki czcionek itp.

System Windows XP służył również do kopiowania bez względu na pamięć podręczną plików. Ale w systemie Windows Vista Microsoft zmienił Eksploratora, aby podczas kopiowania zużywał ograniczoną pamięć podręczną plików . Zmniejsza to wpływ dużych kopii plików na resztę systemu. Ale zmniejsza również szybkość nawet stosunkowo niewielkich kopii plików do prędkości dysku twardego.

Zan Lynx
źródło
Tak, Ubuntu za pomocą mechanizmu buforowania plików. Zauważyłem również, że przeglądanie jest nieco wolne podczas kopiowania. Zauważyłem również, że prędkość jest stale poprawiana, szczególnie podczas kopiowania dużej liczby plików
sarat
Myślę, że jest to odpowiedź, która prawie całkowicie odpowiada na pytanie.
Nandakumar Edamana
2

W systemie Windows użyj Teracopy - rozwiąże ogólny problem głupoty, jaki ma Explorer.

W Ubuntu uważam, że kopiowanie plików jest bardzo szybkie.

Nadal okno dialogowe „Obsługa plików” nie znika, gdy używasz dysków wymiennych. Jeśli spróbujesz bezpiecznie wysunąć dysk natychmiast po zniknięciu okna dialogowego, pojawi się komunikat o błędzie. Dane jednak przechodzą.

Aktualizacja: operacje na plikach systemu Windows są powolne, prawdopodobnie z powodu całej integracji z usługami i rejestrem. Nautilus (w Gnome) jest tylko prostym procesem lub przynajmniej nie ma obciążenia / przerw, które ma Explorer.

BZ1
źródło
Rozwiąż głupotę, dodając kolejny GUI, który musi pozostać otwarty :) W Ubuntu z mojego doświadczenia wynika, że ​​możesz zamknąć okno dialogowe kopiuj / przenieś i przejdzie ono do zasobnika systemowego, wyświetlając powiadomienie po zakończeniu. Nie jestem pewien, jak Natty z Unity pulpicie robi tego
sehe
Teracopy zostaje załadowane Eksploratorem. Nie musisz go otwierać. Teracopy jest więc ładowane do pamięci bez żadnego wysiłku użytkownika i działa dyskretnie. Ubuntu nie potrzebuje czegoś takiego, ponieważ ma całą inteligencję wbudowaną w Nautilus, tj. Opcje „scal” i „pomiń wszystko”.
BZ1
+1: dziękuję za zwrócenie mojej uwagi na TeraCopy!
patrz
Korzystałem z darmowego narzędzia open source o nazwie fastcopy. [ ipmsg.org/tools/fastcopy.html.en]
sarat
-1

Przenoszenie i kopiowanie plików w systemie Linux jest oczywiście szybką operacją. Powodem, dla którego możesz szybko przenosić i kopiować pliki, jest to, że źródło i miejsce docelowe znajdują się na tej samej partycji. Operacja wymaga jedynie zmiany i-węzłów. Przenoszenie plików między różnymi partycjami jest nadal bardzo szybkie (tylko około minuty dla pliku 1-gig). W systemie Windows przeniesienie plików do miejsc docelowych na tej samej partycji zajmuje trochę czasu, ponieważ zarządzanie plikami w systemie Windows jest nieuporządkowane. (Pomyśl o fragmentacji plików i sposobie formatowania dysków twardych przez system Windows).

użytkownik113907
źródło
Zgadzam się, że poruszanie się w partycjach jest dość szybkie. Ale kopiowanie zawsze chciało mieć zduplikowaną datę na dysku i tworzyć nowe i-węzły. Wątpię też, aby przenoszenie plików między partycjami było kosztowne, ponieważ zdarza się fizyczny ruch plików. Popraw mnie, jeśli się mylę.
sarat