Копіювання тисяч файлів на одному HD


1

Я опинився в ситуації, коли копіюю всю файлову систему на двох різних розділах HD (різних розмірів і типів файлової системи). Проблема досі полягає в тому, щоб обидва cp і rsync читатиме один файл у джерелі і записуватиме його на пункт призначення - робити це для кожного невеликого файлу. Таким чином, у мене є лише невелика буферизація ОС і сам кеш HD для запобігання переміщенню голови HD вперед і назад для кожного невеликого файлу - але він відчуває, що це досить близько до цього.

Машина отримала багато оперативної пам'яті. Що я можу зробити, щоб прочитати декілька мегабайт (або навіть ГБ) даних на одному розділі перед тим, як потрапити на інший розділ?

Якщо це важливо, я копію з BTRFS в EXt4 - дані включають кілька дерев git, вихідні файли і такі (кілька великих відео та аудіо файлів).


Копіювати зараз з rsync :-) але все ж, розумний спосіб зробити це буде вітатися.
jsbueno

Відповіді:


2

Ви можете спробувати зіграти cpio або tar трубопроводів, наприклад, використання cpio 's --io-size

Тим не менш, я не вірю, що ви отримаєте кращу продуктивність, ніж можете досягти cp або rsync виконувати свою роботу. Насправді робота файлової системи і основної ОС має справу з поведінкою драйверів hdd і допоможе їй вирішити, чи слід шукати чи ні.

Ви можете отримати краще розуміння цього з цим ТАК питання . Зокрема:

EDIT: Ах, "рідний Linux" може покращити продуктивність шляхом чергування   читає і записує з асинхронним входом-виходом. Дозвіл команд нагромадження може   допомогти драйверу диска вирішити, коли краще шукати. Ви можете спробувати Boost   Asio або pthreads для порівняння. Що стосується "не може перевершити файл POSIX."   дескриптори "... це правда, якщо ви щось робите з даними,   не просто сліпо копіювання.

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