Повільна продуктивність при копіюванні файлів на і з USB-пристроїв


11

Коли я копіюю файли на і з USB-пристроїв (камери, жорсткого диска, карти пам'яті), моя система стає дуже повільною. Наприклад, якщо я хочу закрити вікно, я переміщую мишу, але для переміщення курсору миші потрібно приблизно 2 секунди або більше. Коли я нарешті перебираю курсор на x і клацну його, нічого не відбувається протягом 10+ секунд. Я спробував це, якщо всі ефекти на робочому столі вимкнено, але проблема зберігається.

Програмне забезпечення: Устаткування Linux Mint 9 KDE:

  • Материнська плата Asus SLI
  • Графічний процесор NVidia 6600
  • 2 ГБ оперативної пам’яті
  • Обмін 2 Гб
  • AMD Athlox X2 @ 3800+

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


2
перевірте, чи USB-порти підтримують USB 2.0. деякі порти USB, особливо на передній панелі настільних комп'ютерів, використовувались лише для USB 1.0. Також перевірте, чи налаштування вашого BIOS оптимальні для роботи USB. Можливо, деякі налаштування швидкості USB та / або застарілі параметри USB можуть вплинути на вашу ефективність.
Тім Кеннеді

Чи пристрій відформатовано як NTFS? Якщо це так, я спробую переформатувати його як FAT32 (або EXT4, якщо ви тільки плануєте використовувати його в Linux).
RobinJ

3
Здається, існує проблема з величезними сторінками в управлінні пам'яттю Linux . Він трапляється рідко, але звучить так, як ви це спостерігали.
artistoex

@artistoex - Ця стаття повністю резюмує поведінку, яку я відчував. Шкода, що конкретного виправлення немає. Хтось знає, чи це виправлено в пізніших версіях? Час на оновлення все одно.
Іван

як йдеться у статті, перекомпілюйте своє ядро ​​з вимкненою прозорою величезною сторінкою.
artistoex

Відповіді:


7

Здається, є проблема з величезними сторінками в управлінні пам'яттю Linux . Він трапляється рідко, але звучить так, як ви це спостерігали.

Причина

Це мій грубо спрощений опис того, що, відповідно до статті, відбувається.

Якщо не пощастило, процес застряє в той момент, коли він надає доступ до пам'яті. Це тому, що коли ввімкнено прозорі величезні сторінки, доступ до пам'яті може спровокувати синхронне ущільнення (дефрагментація основної пам'яті,) синхронне, тобто доступ до пам'яті не закінчується до того, як відбувається ущільнення. Це саме по собі не є поганою справою. Але якщо трапляється зворотне записування (наприклад, буферизованих даних на USB) одночасно, ущільнення в свою чергу, ймовірно, зупиниться, чекаючи, коли закінчиться запис.

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

Вилікувати

Оновлення основної пам'яті, як це робилося в ОП, може допомогти затримати проблему. Але для тих, хто не вважає це варіантом, є два очевидних способи вирішення. Обидва передбачають перекомпіляцію ядра:


2

Це схоже на моє запитання тут (де відповідь вказувала мені на це запитання):

/programming/10105203/how-can-i-limit-the-cache-used-by-copying-so-there-is-still-memory-available-for

Але теорія зовсім інша, і рішення, яке я використав, не пов'язане з вашим, але працює бездоганно.

Я використовував rsync, тому все, що мені потрібно було зробити, - це використовувати варіант --drop-кеш. (що робить копію трохи повільнішою як побічний ефект)


0

Єдиний трюк, який я виявив, що справді працює: Gnome, nautilus копіювання файлів на USB зупиняється на 100% або близько

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

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

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

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