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
Odpowiedzi:
Dwa słowa: weryfikacja i pamięć podręczna
Wyjaśnienie techniczne
Oto ogólna procedura kopiowania pliku za pomocą Eksploratora Windows:
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):
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:
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:
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-
.źródło
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ę ...
źródło
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! :)
źródło
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.
źródło
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
źródło
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.
źródło