Чому операції з копіювання файлів у Linux з часом проходять повільніше?


22

У мене 12 ~ 200 МБ файлів. Копіювання одного з них на інший диск займає 20 секунд. Коли я намагаюся скопіювати їх усі одразу, то спочатку йдеться, що це займе 5 хвилин, потім він продовжує сповільнюватися в години та дні.

Я копіюю файли через Thunar в XFCE, але пам'ятаю, що у командному рядку були подібні проблеми. Чому це відбувається і що я можу зробити, щоб виправити це, крім простого копіювання файлів по одному?


Ви перевірили накопичувач на помилки? Чи є ці файли в підпапках?
tubaguy50035

@ tubaguy50035 Файли відсутні в підпапках. При цьому, ймовірно, що у вихідного накопичувача можуть виникнути помилки. Я перевірю.
Користувача не знайдено

@CodeGnome Я зробив базовий cp -v sourcedir / * destdir.
Користувача не знайдено

Відповіді:


25

Це відома проблема з самим ядром Linux, відома століттями, ще ніхто не вирішував цю проблему.

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

Відгуки:


6
Потрібне цитування! Можливо, це допоможе надати відповідь, якщо ви зможете дати документацію, яка вказує на цю помилку
Journeyman Geek


6
і тут, які можна знайти як посилання в оригіналі цитування. bugzilla.kernel.org/show_bug.cgi?id=12309
Дейв

Ви їдете далеко від Linux саме з цієї причини ???
Кірол

1
@Kyrol це дуже велика причина!
puk

10

Спробуйте спробувати rsync контролювати швидкість передачі. Наприклад:

rsync -PSauv sourcedir/* destdir/

Якщо ви насправді відчуваєте падіння швидкості передачі, на відміну від файлів, які є просто великими, то вам потрібно переглянути кілька інших речей.

  1. Якщо ваш диск пов'язаний з входом / виводом, у вас виникнуть проблеми. Ви часто бачите це, коли сильно пишете на флешку або зовнішній USB-пристрій.

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

  3. Перевірте вихід dmesg та статус SMART, щоб переконатися, що у вас немає явних помилок на диску. Ви також можете розглянути, badblocks -nякщо ви підозрюєте про помилки диска на диску, який не є SMART.

Існує маса причин, по яких диск може збиватися або працювати недостатньо оптимально, але поки ви не зможете виміряти проблему, ви не знатимете, в чому проблема. :)


2

Пам'ятайте, що також процес копіювання файлів Linux якимось чином кешується. Якщо ви візьмете один файл (навіть якщо 200 МБ) і почнете його копіювати в інше місце, Linux з великою ймовірністю зберігає весь файл в пам'яті і записує його в нове місце. Потім, якщо ви вирішите скопіювати цей файл ще раз, а разом з ним купу інших файлів, то перший файл уже кешований, а потім, ймовірно, пропускає всю "частину читання", а інші спочатку читають із них, а потім записують у свої джерела. / місця призначення. Ця функція може призвести навіть до нескінченної швидкості передачі та подібних дивацтв, тому не довіряйте жодному вимірюванню, яке може бути визнано недійсним попередніми механізмами схрещування.


-3

Запишіть копію SliTaz на компакт-диск / USB.

Він призначений для використання на дійсно стародавніх машинах і працює дуже швидко, оскільки знаходиться в оперативній пам'яті. Вам не потрібно робити встановлення, просто запустіть його в прямому ефірі. Якщо у вас встановлений USB, ви зможете побачити його, а потім скопіюйте те, що вам потрібно на комп’ютер. Швидкість передачі я вважаю стабільною і швидкою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.