Dlaczego operacje kopiowania plików w systemie Linux stają się coraz wolniejsze?


22

Mam 12 ~ 200 MB plików. Kopiowanie jednego z nich na inny dysk zajmuje 20 sekund. Kiedy próbuję skopiować je wszystkie naraz, najpierw mówi, że zajmie to 5 minut, a następnie zwalnia do godzin i dni.

Kopiuję pliki przez Thunar w XFCE, ale pamiętam podobne problemy z używaniem wiersza poleceń. Dlaczego tak się dzieje i co mogę zrobić, aby temu zaradzić, oprócz kopiowania plików jeden po drugim?


Czy sprawdziłeś dysk pod kątem błędów? Czy te pliki są w podfolderach?
tubaguy50035

@ tubaguy50035 Pliki nie znajdują się w podfolderach. Biorąc to pod uwagę, prawdopodobnie dysk źródłowy może zawierać błędy. Ja sprawdzę.
Nie znaleziono użytkownika

@CodeGnome Zrobiłem podstawowe cp -v sourcedir / * destdir.
Nie znaleziono użytkownika

Odpowiedzi:


25

Jest to znany problem z samym jądrem Linuksa, który był znany od wieków, nikt jeszcze nie rozwiązał tego problemu.

obecnie nie ma poprawki ani znanego obejścia, oprócz korzystania z systemu Windows, który zwiększa prędkość, a następnie normalizuje się. Uważam, że ten błąd ma bardzo wysoki priorytet, ale programiści nie odczuwają tego samego. Tylko ten błąd zaczyna mnie odciągać od Linuksa.

Refs:


6
Wymagane cytowanie! Pomocna może okazać się nasza odpowiedź, jeśli możesz podać dokumentację wskazującą na ten błąd
Journeyman Geek


6
i tutaj, które można znaleźć jako link w oryginalnym cytacie. bugzilla.kernel.org/show_bug.cgi?id=12309
Dave

Odjeżdżasz z Linuksa tylko z tego powodu?
Kyrol

1
@Kyrol to bardzo ważny powód!
puk

10

Powinieneś spróbować rsync, aby monitorować prędkość transferu. Na przykład:

rsync -PSauv sourcedir/* destdir/

Jeśli faktycznie widzisz spadek prędkości transferu, w przeciwieństwie do plików, które są po prostu duże, musisz spojrzeć na kilka innych rzeczy.

  1. Jeśli twój dysk jest powiązany z I / O, będziesz mieć problemy. Często widzisz to podczas intensywnego pisania na dysku flash lub zewnętrznym urządzeniu USB.

  2. Przetestuj oba dyski, hdparm -Tt <device>aby sprawdzić, czy jeden z nich jest znacznie wolniejszy niż powinien, czy znacznie wolniejszy niż inne urządzenie, które może powodować problemy z operacjami we / wy.

  3. Sprawdź dane wyjściowe dmesg i status SMART, aby upewnić się, że nie występują oczywiste błędy dysku. Możesz również rozważyć, badblocks -nczy podejrzewasz błędy dysku na dysku innym niż SMART.

Istnieje wiele powodów, dla których dysk może przebijać lub działać nieoptymalnie, ale dopóki nie uda się zmierzyć problemu, nie wiadomo, na czym polega problem. :)


2

Pamiętaj, że również proces kopiowania plików jest w jakiś sposób buforowany przez system Linux. Jeśli weźmiesz pojedynczy plik (nawet 200 MB) i zaczniesz kopiować go w inne miejsce, Linux z dużym prawdopodobieństwem buforuje cały plik w pamięci i zapisuje go w nowej lokalizacji. Następnie, jeśli zdecydujesz się skopiować ten plik ponownie, a wraz z nim kilka innych plików, pierwszy plik jest już buforowany, a następnie prawdopodobnie pomija całą „część do odczytu”, podczas gdy inne są najpierw odczytywane, a następnie zapisywane w źródłach / destynacje. Ta funkcja może nawet prowadzić do nieskończonych prędkości przesyłania i podobnych dziwactw, więc nie ufaj pomiarom, które mogłyby zostać unieważnione przez poprzednie mechanizmy przerywania.


-3

Nagraj kopię SliTaz na CD / USB.

Jest przeznaczony do użytku na naprawdę starożytnych maszynach i działa bardzo szybko, ponieważ jest w pamięci RAM. Nie musisz instalować, po prostu uruchom go na żywo. Jeśli masz podłączony USB, będziesz mógł go zobaczyć, a następnie skopiować to, czego potrzebujesz na swój komputer. Szybkości transferu, które znalazłem, są stabilne i szybkie.

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.