Kiedy kopiuję pliki na urządzenie USB, zajmuje to dużo dłużej niż w systemie Windows (to samo urządzenie USB, ten sam port), jest szybsze niż prędkości USB 1.0 (1 MB / s), ale znacznie wolniejsze niż prędkości USB 2.0 (12 MB / s). Kopiowanie 1,8 GB zajmuje mi ponad 10 minut (powinno to być <3 min.) Mam dwa identyczne dyski SanDisk Cruzer 8 GB i mam ten sam problem z obydwoma. Mam super talent 32 GB SSD USB w sąsiednim porcie i działa z oczekiwanymi prędkościami.
Problem, który wydaje mi się widoczny w interfejsie GUI, polega na tym, że pasek postępu prawie natychmiast osiąga 90%, kończy się do 100% nieco wolniej, a następnie zawiesza się tam przez 10 minut. Przerwanie kopiowania w tym momencie wydaje się powodować uszkodzenie na końcu pliku. Jeśli poczekam na zakończenie, kopiowanie się powiedzie.
Jakieś pomysły? Wyjście dmesg poniżej:
[64059.432309] usb 2-1.2: new high-speed USB device number 5 using ehci_hcd
[64059.526419] scsi8 : usb-storage 2-1.2:1.0
[64060.529071] scsi 8:0:0:0: Direct-Access SanDisk Cruzer 1.14 PQ: 0 ANSI: 2
[64060.530834] sd 8:0:0:0: Attached scsi generic sg4 type 0
[64060.531925] sd 8:0:0:0: [sdd] 15633408 512-byte logical blocks: (8.00 GB/7.45 GiB)
[64060.533419] sd 8:0:0:0: [sdd] Write Protect is off
[64060.533428] sd 8:0:0:0: [sdd] Mode Sense: 03 00 00 00
[64060.534319] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.534327] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.537988] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.537995] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.541290] sdd: sdd1
[64060.544617] sd 8:0:0:0: [sdd] No Caching mode page present
[64060.544619] sd 8:0:0:0: [sdd] Assuming drive cache: write through
[64060.544621] sd 8:0:0:0: [sdd] Attached SCSI removable disk
sync
i sprawdź, czy to nie przyspieszy procesu. <- niesprawdzone, ale możliweOdpowiedzi:
Dlaczego kopiowanie na mój dysk USB jest tak wolne w systemie Linux (i szybsze w systemie Windows)?
Buforowanie Powód 1. Plik może zapisy pojawiają się wolniej lub szybciej
Jedną rzeczą, którą musisz zrozumieć, jest buforowanie plików. Linux (i Windows) użyje inaczej „pustej” pamięci RAM do buforowania operacji odczytu / zapisu i przyspieszenia ich przy kolejnych dostępach. Buforowanie operacji kopiowania na wolne urządzenia powoduje zachowanie, które widzisz - „szybkie zakończenie” faktycznie zapisuje w pamięci podręcznej, a następnie spowalnia i zatrzymuje się, ponieważ faktyczne opróżnianie danych w pamięci podręcznej (synchronizacji) na wolne urządzenie jest trwa bardzo długo. Jeśli przerwiesz w tym momencie, dane zostaną uszkodzone (jak zauważyłeś), ponieważ synchronizacja nigdy się nie zakończyła.
Takie kopiowanie w systemie Windows może wydawać się szybsze (w tym zgłaszane prędkości MB / s), ponieważ czasami system Windows nie będzie czekać na synchronizację i zadeklaruje ukończenie zadania, gdy tylko dane zostaną zapisane w pamięci podręcznej.
Powód 2. Pisanie dużej liczby plików, zwłaszcza małych, jest powolne
Ze względu na sposób działania pamięci flash i systemów plików najszybszą przepustowość (szybkość) osiąga się przy pisaniu bardzo dużych plików. Pisanie wielu małych plików, a nawet mieszanych danych zawierających wiele małych plików, może znacznie spowolnić proces. Dotyczy to również dysków twardych, ale w nieco mniejszym stopniu.
Powód 3. Nie można porównać prędkości zapisu w pamięci USB i dysku SSD
Pamięć USB w odmianie ogrodowej zwykle składa się z układów pamięci flash, które są zapisywane szeregowo (sekwencyjnie) i nie mają własnego bufora.
Z drugiej strony dysk SSD zawiera kontroler, który zapisuje równolegle w układach pamięci flash , zwiększając przepustowość o 2 lub więcej razy w stosunku do pamięci USB.
Tak więc, z jednym dużym plikiem, twoja 32 GB GB ze strukturą 4x, którą zakładamy, byłaby 4x tak szybka; przy wielu małych plikach byłoby 10 razy szybsze, ponieważ mógłby inteligentnie przechowywać je w pamięci podręcznej.
Podsumowując , są to powody, dla których kopiowanie plików na pamięci USB może wydawać się wolniejsze w systemie Linux. Czy faktycznie jest wolniejszy z powodu problemu ze sprzętem / sterownikiem lub czegoś innego ...
Właściwe porównanie prędkości zapisu między Linuksem a Windowsem
dd if=/dev/urandom of=largetest bs=1M count=7500
, co daje 7500 MB pliku testowego. Zakładając, że twój system ma mniej niż 4 GB pamięci RAM, jest wystarczająco dobry. Skopiuj go na świeżo sformatowany dysk Sandisk 8 GB i zmierz czas.largetest
z pamięci USB na dysk twardy. Uruchom ponownie (aby usunąć go z pamięci podręcznej). Następnie sformatuj pamięć USB (ten sam vat / FAT32!) I skopiujlargetest
z dysku twardego na pamięć.źródło
Znaleziono poprawkę, którą zrobiłem, to odmontowałem, usunąłem dysk i uruchomiłem
sudo modprobe ehci_hcd
w terminalu. Włóż dysk i Agian,sudo modprobe ehci_hcd
kiedy go włożę i wow 20 / mbs myślałem, że podzielę się. Mam nadzieję, że nie muszę tego robić za każdym razem ... ale nie jest to trudne ...https://bugs.launchpad.net/ubuntu/+source/linux/+bug/177235 mówi, że naprawili błąd.
źródło
Myślę, że są bardzo małe szanse, że jest to problem z portem. Bardziej prawdopodobne jest, że występuje problem z Linuksem (lub konfiguracją Linuksa) - przeglądaj go, a znajdziesz tysiące raportów problemów dotyczących wolnego USB w Linuksie / Ubuntu. Dla mnie jest to prawie showstopper dla Linuksa - mam teraz Ubuntu 12.04 LTS i nadal mam ten problem (więc raczej używam konfiguracji Win7 - głównie / tylko z tego powodu). Ten problem (lub coś z podobnymi objawami) istnieje już od kilku lat, najwyraźniej nie ma rozwiązania. W tym czasie wypróbowałem kilka fizycznych komputerów z kilkoma różnymi wersjami ubuntu (domyślna konfiguracja) i 2-3 różnymi pamięciami USB ....
źródło
Tylko
umount
urządzenie, jeśli jest już automatycznie zamontowane, i ręcznie je podłącz/mnt/foldername
.W moim przypadku,
Potem radzi sobie bardzo szybko.
źródło
rsync
zamiastcp
wydaje się załatwić sprawę.Jest rok 2019 i nadal mam ten sam problem. Pomyślałem więc, że szukam rozwiązania w Internecie. Znalazłem następującą stronę, która sugeruje jedną: https://gist.github.com/2E0PGS/f63544f8abe69acc5caaa54f56efe52f
To mówi:
Wykonaj następujące polecenia w konsoli, aby sprawdzić, czy to rozwiąże problem. Być może trzeba
sudo su
będzie mieć wymagane pozwolenie.Jeśli zadziała, możesz sprawić, że zmiana będzie trwała podczas ponownego uruchamiania, wklejając dwie linie na końcu
/etc/rc.local
pliku.Dla mnie miało to następujący efekt:
Wcześniejsze kopiowanie dużych plików na dysk USB zaczynałoby się naprawdę szybko (jak 60 MB / s) i stawało się coraz wolniejsze (<10 MB / s), aż wyglądałoby na to, że nigdy się nie skończy.
Teraz zaczyna się wolniej, ale staje się coraz szybszy i kończy się wcześniej niż wcześniej. Wydaje się więc, że „rozwiązuje” problem lub przynajmniej ma pozytywny wpływ.
źródło
Jeśli przełączysz się na USB 3.0, przejdziesz z 1 Mb / s do niesamowitego 5-8 Mb / s. Przełączam się na USB 3.0 3.0 i zewnętrzny HD i nie oglądałem się za siebie.
źródło
Kiedy patrzysz na / etc / mtab, czy widzisz, że urządzenie zostało zamontowane z opcją „flush”?
Jeśli tak, może to być przyczyną problemu (dotyczyło mnie). Po prostu odmontuj urządzenie i podłącz je ponownie, nie powinno być domyślnie ustawione.
źródło
Miałem też pewne problemy z szybkością transferu na zewnętrznym dysku WD, po otwarciu go w Windows SO zawsze korzystałem z LINUX, po czym szybkość transferu wynosiła około 1,5 Mb / s, a następnie odmontowałem zewnętrzny dysk twardy uruchomiony tam dmesg, tam był mówiąc, że sdb1 był niepoprawnie odmontowany, uruchomił fsck, który dokonał kilku napraw, a następnie ponownie 20 Mb / s prędkości transferu przy kopiowaniu z sda na dysk zewnętrzny. fsck zawsze stanowi ryzyko, jeśli masz dane, ale działało to dla mnie, bez utraty danych.
źródło
Miałem również ten problem, ale używam polecenia cp, a ty aktualizujesz pamięć USB w kilka sekund;
Myślę, że to bardzo późna odpowiedź, ale wciąż jest otwarta.
źródło
Okej, miałem ten sam problem przez trzy dni i jak udało mi się wykonać kopię zapasową mojego dysku twardego 1 TB za pomocą rsync, wiem, że jest on używany do tworzenia kopii zapasowych, ale wykonał zadanie, nawet podczas przesyłania dużych plików, których używam do wykonać tę pracę. Jeśli chcesz używać go z GUI, sugeruję zainstalowanie Grsync, która jest graficzną wersją rsync, ponieważ rsync działa na terminalu.
Mam nadzieję, że to pomogło
źródło