Чому під час копіювання на зовнішній привід вікно прогресу невірно


11

Не соромтесь редагувати заголовок, щоб краще пояснити, що я тут пишу.

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

Це відбувається не лише з великими файлами, але й з багатьма невеликими файлами. Якщо я скопіюю їх, на панелі прогресу може сказати, наприклад, 15 секунд, і закінчити за цей час, але реальний час може становити 1 хвилину, і наступні 45 секунд мені потрібно реально подивитися на світло в приводі пера, щоб побачити, чи є це реальна діяльність на ньому.

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

Чи це залежно від кешу зовнішнього блоку?

Чи впливає розмір і кількість файлу на правильну оцінку. Наприклад, 1 файл об'ємом 4 ГБ або 1000 файлів об'ємом 4 Мб.

Чи є параметри конфігурації, які можуть змінити поведінку.

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

Відповіді:


6

Я б припустив, що ви використовуєте Nautilus в якості файлового менеджера, і якщо так, то давні помилки з цього приводу. Занадто багато, щоб згадати, що впливають на м'яту, Fedora, Red Hat тощо. Ubuntu не обходиться без цього ж питання.

Деякі пропонують вимкнути перегляд мініатюр. Інші покладають свої надії у "новітнє ядро", але це все ще існує.

Проблема = Починається швидко, а потім йде повільніше Це відбувається тому, що при монтажі з асинхронією вона запише в кеш, коли кеш заповнений, ви побачите швидкість запису "Реальна".

Робота навколо, здається, є sudo cp /filetobecopied /dev/nameofdevice

інший розміщений тут говорить про те, що "копіювання шматками" працює. Непідтверджений з мого боку.


3
Для уточнення ядро ​​кешує дані в оперативній пам’яті, а не записує їх безпосередньо (з міркувань продуктивності). Коли ви натискаєте Витягнути, syncу фоновому режимі виконується команда, яка промиває кеш. Для великих обсягів даних це може зайняти деякий час.
тридцять тридцятиріччя

1
ПОРАДА: sudo cp / filetobecopied / dev / nameofdevice замінить всю файлову систему вашим файлом, як правило, не тим, що ви хочете ....
Lennart Rolland,

1

Це також приємна відповідь з рішенням: https://unix.stackexchange.com/a/181236 У ньому написано:

Причина, що трапляється саме так, полягає в тому, що програма каже "записувати ці дані", і ядро ​​Linux копіює її в буфер пам'яті, який знаходиться в черзі, щоб перейти на диск, а потім каже "добре, готово". Тож програма думає, що скопіювала все. Потім програма закриває файл, але раптом ядро ​​змушує його чекати, поки цей буфер висувається на диск.

Отже, на жаль, програма не може сказати вам, скільки часу знадобиться для очищення буфера, оскільки він не знає.

Якщо ви хочете спробувати деякі прийоми з використанням енергії, ви можете зменшити розмір буфера, який використовує Linux, встановивши / proc / sys / vm / dirty_bytes на щось на зразок 15728640 (15 Мб). Це означає, що програма не може отримати більше, ніж 15 Мб перед фактичним прогресом.

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

Але не встановлюйте це занадто мало! Я використовую 15 Мб як приблизну оцінку, що ядро ​​може перевести буфер на звичайний жорсткий диск через 1/4 секунди або менше. Це перешкоджає моїй системі відчувати себе "млявим".

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