W połączeniu gigabitowym Teracopy ma prędkość 31 MB / s, ale Windows 8 robi to z prędkością około 109 MB na sekundę?


13

Dzisiaj mój oszałamiający pierwszy smak sieci Gigabit, między moim komputerem MacMini 2011 a komputerem z systemem Windows 8 Pro połączonym przez Cat.5e z Linksys WRT320N (sporting dd-WRT).

Po upewnieniu się, że prędkość linii w obu systemach pokazuje 1 Gb / s, przystąpiłem do kopiowania 2,4 GB MP4 z Mini na pulpit Win 8 (udostępnianie SMB). Chociaż zadowolony z 30-34 MB / s, które pokazywał Teracopy (był to dla mnie odpowiedni wzrost z 10 MB / s), nadal byłem ciekawy tej ogromnej różnicy w reklamowanej i rzeczywistej prędkości.

Dwie godziny Google sprawiły, że uwierzyłem, że istnieją inne czynniki, które skutkują mniejszą prędkością, a jednym z nich jest SMB. Tak więc, aby to zrobić, iPerf wybrałem oba systemy i zgaduję, co to pokazało - około 875 Mb / s na obu systemach!

Potem natknąłem się na tę małą informację, po której wyłączyłem Teracopy i skopiowałem ten sam plik za pomocą zwykłej kopiarki Windows 8. 109 MB / s. Stopione mózgi :)

Co dokładnie to powoduje? Czy mogę włączyć takie prędkości za pomocą Teracopy? Naprawdę odkrywam dodatkowe funkcje, które ma Teracopy, na pewno będę ich teraz brakować: D


2
Pierwszą rzeczą, która przychodzi mi na myśl, jest: jak skopiowałeś za pomocą teracopy? Do / z litery dysku? (który serializuje rzeczy i jest wolniejszy) czy na ścieżkę UNC?
Hennes

Właśnie udostępniłem foldery (kliknij prawym przyciskiem myszy> udostępnianie> Udostępnij ten folder lub równoważny) na obu komputerach. Uzyskuję dostęp do komputera podłączonego do sieci po prostu otwierając „Sieć” z lewego panelu w Eksploratorze oraz w OS X, wybierając nazwę komputera podłączonego do sieci z lewego panelu w Finderze. Mówiąc najprościej, uzyskuję dostęp do plików Mac z Eksploratora w Win 8, kopiuję je za pomocą podstawowego polecenia Ctrl + C i wklejam lokalnie na pulpicie komputera.
Gaurang

Z jakich napędów korzystasz? Dwa dyski SSD? Te liczby Windows 8 wyglądają dla mnie dziwnie.
Apache

Odpowiedzi:


16

W połączeniu gigabitowym Teracopy ma prędkość 31 MB / s, ale Windows 8 robi to z prędkością około 109 MB na sekundę?

Co dokładnie to powoduje? Czy mogę włączyć takie prędkości za pomocą Teracopy? Naprawdę odkrywam dodatkowe funkcje, które ma Teracopy, na pewno będę ich teraz brakować: D

Dwa słowa: weryfikacja i pamięć podręczna

Wyjaśnienie techniczne

Oto ogólna procedura kopiowania pliku za pomocą Eksploratora Windows:

  1. Odczytaj fragment danych z napędu źródłowego do pamięci
  2. Wyślij porcję przez system (y)
  3. Zapisz fragment na dysku docelowym
  4. Jeśli jeszcze tego nie zrobiono, wróć do kroku 1

To wydaje się proste i wystarczająco krótkie. Dzięki temu algorytmowi przesyłania każdy bajt pliku jest przetwarzany tylko dwa razy: jeden odczyt, jeden zapis.

Ponadto system Windows używa pamięci (podobnie jak sam dysk) do buforowania niektórych danych. Zamiast więc czekać na napisanie poprzedniego fragmentu, a następnie odczytanie kolejnego fragmentu, można odczytać nowy fragment, gdy poprzedni jest jeszcze w trakcie pisania. Oczywiście nie może to trwać wiecznie, ale system Windows może wykorzystać całą pozostałą wolną pamięć jako tymczasowy bufor do przechowywania większości, jeśli nie całego pliku, który jest odczytywany w pamięci.

Możesz zobaczyć buforowanie w akcji, kopiując duży plik - lub folder zawierający wiele plików - z jednego dysku na drugi, a następnie natychmiast porównując oba. W tym momencie porównanie będzie znacznie szybsze, niż jeśli zrobisz to później, ponieważ pliki są nadal w pamięci, więc w rzeczywistości nie odczytuje ich z napędu.

Ponieważ pamięć jest bardzo szybka, a prędkości odczytu są zwykle nieco szybsze niż prędkości zapisu, ostateczna szybkość transferu jest ograniczona tylko prędkością zapisu napędu docelowego.

Teracopy może zrobić dwie rzeczy, które mogą spowolnić przesyłanie plików, których nie robi Explorer:

  • Zrezygnuj z pamięci podręcznej i czytaj bezpośrednio z dysku

  • Sprawdź, czy miejsce docelowe zostało poprawnie zapisane

W przeciwieństwie do Eksploratora, który sprawdza tylko podstawowe błędy podczas przesyłania, Teracopy może faktycznie sprawdzić, czy dane zostały poprawnie zapisane na dysku docelowym, aby zapobiec uszkodzeniu danych, które mogłoby się zdarzyć z powodu problemów z nośnikiem transferu (sieć / kabel napędu / etc.). ) lub sam dysk (uszkodzony sektor itp.). Oznacza to, że musi odczytać plik z miejsca docelowego, aby porównać go z oryginałem.

W zależności od zastosowanego algorytmu i wielkości pliku, weryfikacja może być zoptymalizowana tak nisko jak (ale nie mniej niż) trzy operacje na dysku dla każdego pliku / fragmentu pliku w przeciwieństwie do dwóch Eksploratora: odczytaj plik ze źródła, napisz plik do miejsca docelowego i przeczytaj plik z miejsca docelowego.

Zobacz, co się stanie, gdy skopiujesz plik za pomocą Teracopy (z algorytmem zoptymalizowanym do HDD):

  1. Przeczytaj fragment z napędu źródłowego
  2. Hash fragment odczytany z napędu źródłowego
  3. Wyślij porcję przez system (y)
  4. Zapisz go na dysku docelowym
  5. Wyczyść skrzynki
  6. Przeczytaj fragment z dysku docelowego
  7. Hash fragment z dysku docelowego
  8. Porównaj skróty
  9. Określ następny krok
    • Jeśli skróty nie pasują, podaj błąd i monituj użytkownika o działanie
    • Jeśli skróty są dopasowane i nie zostały ukończone, wróć do kroku 1

Problem polega na tym, że jeśli buforujesz pliki podczas przesyłania, porównanie staje się bezużyteczne, ponieważ nie odczytujesz rzeczywistych danych na dysku docelowym, czytasz kopię buforowaną w pamięci ze źródła. Dlatego, aby poprawnie zweryfikować, musisz wyczyścić pamięć podręczną. Można to zrobić po każdym odczycie i zapisie (co jest dodatkową operacją, która skończyłaby się niezliczoną ilością razy dla plików o znacznych rozmiarach) lub tylko raz po przesłaniu całego pliku.

Zgodnie z poniższym zrzutem ekranu TeraCopy przeprowadza weryfikację po przesłaniu plików, a nie podczas. Oznacza to, że zamiast tego wykorzystuje algorytm transferu zoptymalizowany pod kątem procesora / pamięci RAM:

  1. Przeczytaj fragment z napędu źródłowego
  2. Wyślij porcję przez system (y)
  3. Zapisz go na dysku docelowym
  4. Jeśli jeszcze tego nie zrobiono, wróć do kroku 1
  5. Kopiowanie zakończone, więc wyczyść pamięć podręczną i zweryfikuj
  6. Przeczytaj fragment z napędu źródłowego
  7. Hash fragment z dysku docelowego
  8. Przeczytaj fragment z dysku docelowego
  9. Hash fragment z dysku docelowego
  10. Porównaj skróty
  11. Określ następny krok
    • Jeśli skróty nie pasują, podaj błąd i monituj użytkownika o działanie
    • Jeśli skróty są dopasowane i nie zostały ukończone, wróć do kroku 6

Chociaż ten algorytm nieco mniej obciąża procesor i pamięć RAM, znacznie bardziej obciąża dyski, ponieważ teraz każdy plik musi być przetwarzany cztery razy: odczytać cały plik ze źródła, zapisać go w miejscu docelowym , a następnie przeczytaj go ponownie ze źródła i ponownie z miejsca docelowego.

(Gdyby TeraCopy zostało zoptymalizowane pod kątem transferów sieciowych, mogłoby to uniknąć ponownego przesłania całego pliku do weryfikacji i wysłania tylko skrótów, które są znacznie mniejsze, ale obecnie tak się nie dzieje, a sterowniki sieciowe są traktowane tak samo jako dysk lokalny, więc faktycznie ponownie odczytuje źródło).

Domyślnie TeraCopy nie weryfikuje ani nie korzysta z pamięci podręcznej. Nie weryfikacji byłoby przyspieszyć transfer do góry (lub bardziej dokładnie, nie zwalniać go w dół), a nie przy użyciu pamięci podręcznej będzie zwalniać.

Podanie

Aby określić konkretne wyniki prędkości, musisz sprawdzić ustawienia, aby sprawdzić, czy je zmieniłeś. Następnie możesz spróbować oszacować, jakie prędkości uzyskasz przy różnych ustawieniach (pamiętaj, że prawdopodobnie będą one oddziaływać, więc nie jest to proste dodawanie lub odejmowanie).

Powiedziawszy to, zróbmy pobieżne obliczenia, używając twoich liczb:

  • Lokalny transfer plików: 875 Mb / s (tzn. Prędkość dysku)
  • Szybkość sieci: 1 Gb / s = 119,21 MB / s
  • Kopiuj za pomocą Eksploratora Windows: 109 MB / s
  • Kopiuj przez TeraCopy: 34 MB / s

Od samego początku widzimy, że transfer plików Explorer prawie maksymalizuje przepustowość sieci. 1 Gbps link jest równa 1000000000 bitów na sekundę, w jednostkach binarnych z bajtów , jest 119MBps. Eksplorator ma taktowanie 109 MB / s, a pozostałe 10 MB / s (co w zabawny sposób było twoim poprzednim maksimum :^Þ ) można łatwo obliczyć narzutem, obciążeniem tła i fragmentacją.

(Ponieważ szybkość transferu jest prawie równa prędkości sieci, możemy przypuszczać, że transfer plików Eksploratora jest jednokierunkowy i wysyłana jest tylko jedna kopia każdego pliku.) Eksplorator dostaje 110 MB / s dla dwóch dostępów do pliku na plik.

Teraz dla TeraCopy. Wygląda na to, że TeraCopy uzyskuje prawie dokładnie jedną trzecią prędkości Eksploratora.

W zależności od tego, czy okno preferencji dokładnie wskazuje algorytm, którego używa, TeraCopy może faktycznie wysłać cały plik źródłowy dwukrotnie, aby mógł sprawdzić kopię. Od razu zmniejsza to przepustowość o połowę. Jeśli pamięć podręczna jest włączona, to również zmniejsza szybkość, ponieważ musi czekać na zakończenie każdego zapisu, zanim będzie mogła wysłać nową porcję. W połączeniu z weryfikacją może jeszcze bardziej powalić.

Szybkość transferu 34 MB / s wydaje się rozsądna, jeśli masz włączoną weryfikację i buforowanie. Jeśli wyłączysz weryfikację i buforujesz, powinieneś uzyskać mniej więcej tyle samo, co Eksplorator (nadal możesz uzyskać nieco mniej, a nawet nieco więcej, w zależności od tego, jak różni się kod transferu plików używany przez TeraCopy od kodu używanego przez Eksploratora).

Jeśli masz ochotę przenieść prawie 10 GB, możesz również spróbować zmienić ustawienia i powtórzyć przesyłanie dla każdej z czterech permutacji i zanotować otrzymane prędkości (dla bezpieczeństwa zamów to, aby pamięć podręczna była między przerwami:) V+C+, V+C-, V-C+, V-C-.


Zrzut ekranu okna dialogowego preferencji TeraCopy z ustawieniami domyślnymi


1
Czy Twoim zdaniem zalecamy korzystanie z dysku SSD w celu włączenia (zaznaczenia) opcji „Użyj pamięci podręcznej zapisu systemu”, jeśli szukasz maksymalnej wydajności?
Wujek Iroh

1

Podejrzewam, że ma to związek z faktem, że Windows 8 używa SMB v. 3 i wątpię, czy teracopy jest kompatybilny z SMB v.3 i domyślnie powraca do SMB 2. Tylko zgaduję ...


0

Nie mogę udzielić 100% odpowiedzi na Twój problem, ale mogę dodać więcej, które mogą pomóc.
Mój powód przejścia na Teracopy był spowodowany sposobem, w jaki system Windows musi „wszystko” obliczyć, zanim cokolwiek zrobi, a samo obliczenie może czasami zawiesić cały proces. W innych postach wspomniano, że rodzaj kopiowanego pliku ma znaczenie w kopii systemu Windows, nie mogę powiedzieć na pewno w Teracopy, ponieważ nie widziałem, że to wywołane. Ale moje własne próby pozostawiły mnie do tej pory z mniej niż w każdym razie. Właśnie kopiuję ogólne typy plików, a nie pliki multimedialne (tj. Zdjęcia / filmy).

Moje testy przeszły z Seagate 3 TB NAS z dostępem do GB NIC w sieci 100% GB na system GB. Najlepszy przypadek, 14 Gb / s. Przeniesienie systemu Windows z NAS do systemu HD uzyskało 12,4 GB / s, a jego uruchomienie zajęło nieco więcej czasu. Nic nie zbliżyło się do twojego 30-34 Mb / s, a mniej niż 109 Mb / s.

Częściowo jest to z pewnością spowodowane kontrolą przepływu NAS, nawet w sieci GB. Byłbym bardzo szczęśliwy, gdybym mógł uzyskać 34 GB / s, a jeszcze bardziej, gdybym mógł uzyskać 109 GB / s. Jeśli znajdziesz szybszą kopiarka do plików, opublikuj! :)


1
Chciałbym dodać, że ustawienie używania systemowej pamięci podręcznej zapisu, gdy jest używane, wydaje się mieć znaczącą różnicę w ukończeniu w czasie rzeczywistym. O wiele szybciej.
user1376156

Jak uzyskać 14 Gb / s przez sieć? Nawet SATA III nie obsługuje takich prędkości.
Marzec Ho

0

To pomogło mi w tej kwestii, między Intel Chipset płyty głównej NIC.

TOE (TCP Offload Engine) został wprowadzony do systemu Windows w 2003 roku, z okropnymi wynikami z Broadcom NIC stosowanych w większości serwerów w tym czasie, powodując uszkodzenie danych, jeśli „odciążono” sumę kontrolną. Wygląda na to, że dostawcy kart sieciowych wciąż nie mają tego dobrze i nie jest to tylko Broadcom. Odciążanie sieci jest prawie zawsze wolniejsze i najwyraźniej jest również bardziej podatne na błędy niż robienie tego wszystkiego w oprogramowaniu. Przejdę do ustawień twojego adaptera i wyłączę wszelkie odciążanie sprzętu dowolnego rodzaju.


2
Gdyby to była przyczyna, cały ruch sieciowy TCP byłby powolny. Nie tylko sieć terakopii, tak szybka kopia eksploratora.
Hennes,

0

Wcześniej miałem identyczny problem z powolnymi transferami za pośrednictwem TeraCopy. Celeron J1800 z wbudowaną kartą LAN Realtek Gigabit 8111C. Nie dostawałem nic więcej niż 35-45 megabajtów na sekundę. Dość frustrujące!

Skończyło się na złym sterowniku karty LAN.

Zainstalowane okna od zera ze sterownikami OEM. Wykonałem również następujące czynności:

W Menedżerze urządzeń / Karta Lan / Ustawienia zaawansowane / Wyłącz wszystko oprócz KONTROLI PRZEPŁYWU.

W obszarze Funkcje systemu Windows wyłącz zdalną kompresję różnicową.

Teraz średnia prędkość wynosi od 60 do 70 Mb / s

wprowadź opis zdjęcia tutaj


-1

Zrobiłem też kilka testów z Teracopy 2.3 final i moją Synology Diskstation. W rzeczywistości proces kopiowania jest zbyt wolny. Skopiowałem pliki o średniej prędkości około 40 MB / s.

Oryginalny program do kopiowania plików Windows 8 jest szybszy niż Teracopy!

Teraz próbuję Ultracopiera, moje obecne prędkości wynoszą około 80 MB / s, znacznie szybciej niż Teracopy. Lubię Teracopy, ale myślę, że Teracopy ma problem z kopiowaniem sieci.

Ponieważ kopiuję wiele plików z jednego dysku sieciowego na inny, muszę użyć najszybszego programu do kopiowania, jaki mogę uzyskać, ponieważ proces kopiowania zawsze jest zbyt długi.


1
Właśnie miałem wypróbować Ultracopier ... I przeszukałem go, a wiki stwierdza, że ​​jest to złośliwe oprogramowanie ukryte jako zamiennik pliku Eksploratora Windows ... UWAGA! STRZEC SIĘ! „Ultracopier to złośliwe oprogramowanie, które zamienia się w narzędzie zastępujące funkcję kopiowania plików Eksploratora Windows / Eksploratora plików”. pl.wikipedia.org/wiki/Ultracopier

2
Ultracopier to złośliwe oprogramowanie - nie polecam go używać. ( en.wikipedia.org/wiki/Ultracopier )
Art Gertner

4
Jeśli poświęcisz trochę czasu na przeczytanie artykułu połączonego z tą stroną wiki , zostanie ujawnione: „Aby go sfinansować, umieściłem górnika Bitcoin (który używa GPU w 100%) lub wersję bez niego, ale z małą reklamą w darmowe wersje ”. Ale jest to ważny punkt o oprogramowanie nie wyraźnie stwierdzając, takie na jego witrynie pobierania.
Mokubai
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.