Почему операции копирования файлов в Linux замедляются со временем?

22

У меня 12 ~ 200 МБ файлов. Копирование одного из них на другой диск занимает 20 секунд. Когда я пытаюсь скопировать их все сразу, сначала говорится, что это займет 5 минут, а затем замедляется до часов и дней.

Я копирую файлы через Thunar в XFCE, но помню, что у меня были похожие проблемы с использованием командной строки. Почему это происходит и что я могу сделать, чтобы это исправить, кроме простого копирования файлов по одному?

Пользователь не найден
источник
Вы проверили диск на наличие ошибок? Эти файлы находятся в подпапках?
tubaguy50035
@ tubaguy50035 Файлы не находятся в подпапках. Тем не менее, вполне вероятно, что исходный диск может иметь ошибки. Я проверю.
Пользователь не найден
@CodeGnome Я сделал базовый cp -v sourcedir / * destdir.
Пользователь не найден

Ответы:

25

Это известная проблема с самим ядром Linux, которая была известна целую вечность, никто еще не занимался этой проблемой.

в настоящее время нет исправления или известного обходного пути, кроме использования Windows, которая увеличивает скорость, а затем нормализуется. Я считаю эту ошибку очень приоритетной, но программисты не чувствуют себя так же. Только эта ошибка начинает отталкивать меня от Linux.

Refs:

Дейв
источник
6
Требуется цитирование! Это может помочь выработать наш ответ, если бы вы могли предоставить некоторую документацию, которая указывает на эту ошибку
Journeyman Geek
6
и здесь, который можно найти как ссылку в оригинальной цитате. bugzilla.kernel.org/show_bug.cgi?id=12309
Дейв
Вы уезжаете из Linux только по этой причине ???
Кироль
1
@ Кироль, это очень серьезная причина!
Пук
10

Вы должны попробовать rsync, чтобы отслеживать скорость передачи. Например:

rsync -PSauv sourcedir/* destdir/

Если вы действительно видите снижение скорости передачи, в отличие от файлов, которые просто большие, то вам нужно взглянуть на несколько других вещей.

  1. Если ваш диск связан с вводом / выводом, у вас будут проблемы. Это часто наблюдается при интенсивной записи на флэш-диск или внешнее USB-устройство.

  2. Проверьте оба диска, hdparm -Tt <device>чтобы убедиться, что один из них значительно медленнее, чем должен быть, или значительно медленнее, чем другое устройство, что может привести к проблемам ввода-вывода.

  3. Проверьте вывод dmesg и состояние SMART, чтобы убедиться в отсутствии явных ошибок на диске. Вы также можете подумать, badblocks -nесли вы подозреваете ошибки диска на диске не SMART.

Существует множество причин, по которым диск может работать с перебоями или работать неоптимально, но пока вы не сможете измерить проблему, вы не узнаете, в чем проблема. :)

CodeGnome
источник
2

Помните, что процесс копирования файлов также как-то кэшируется в Linux. Если вы возьмете один файл (даже если он размером 200 МБ) и начнете копировать его в другое место, Linux с большой вероятностью кеширует весь файл в памяти и записывает его в новом месте. Затем, если вы решите скопировать этот файл еще раз и вместе с ним кучу других файлов, то первый файл уже кэшируется, а затем, вероятно, пропускает всю «часть чтения», в то время как остальные сначала читаются, а затем записываются в свои источники. / направления. Эта функция может даже привести к бесконечным скоростям передачи и подобным странностям, поэтому не доверяйте никаким измерениям, которые могли бы быть аннулированы предыдущими механизмами сцепления.

Avio
источник
-3

Запишите копию SliTaz на CD / USB.

Он предназначен для использования на действительно древних машинах и работает очень быстро, поскольку находится в оперативной памяти. Вам не нужно делать установку, просто запустите ее вживую. Если у вас есть USB-порт, вы сможете его увидеть, а затем скопировать то, что вам нужно, на свой компьютер. Скорость передачи, которую я нашел, была стабильной и быстрой.

user202442
источник