4

Что я хочу сделать, это скопировать 500K файлов.

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

Его размер превышает 23 ГБ, но занимает слишком много времени (более 30 минут и еще не сделано), команда linux cp также использует только 1 процессор.

Так что, если я запишу сценарий для использования нескольких CPS, это сделает это быстрее.

Система состоит из 16 ядер, 16 ГБ оперативной памяти, 15 КБ драйверов (15000 об / мин SATA).

Какие есть другие варианты?

Я считаю, что tarring и распаковка заняли бы больше времени и не будут использовать многоядерные

4 ответа4

6

Ваше узкое место - скорость жесткого диска. Многоядерный не может ускорить это.

3

Копирование одного большого файла происходит быстрее, чем перемещение большого количества мелких файлов, поскольку при настройке и завершении каждой операции существует большая задержка - также диск и ОС могут выполнять много операций чтения с одним большим файлом. Так что, сначала сменив его, вы сделаете это быстрее. Хотя, если вы учтете время, затраченное на смолу, это может не сильно ускорить процесс.

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

0

Хотя вопрос был довольно старым, я думаю, что лучший способ - архивировать с использованием многоядерных процессоров, таких как lbzip2 и pbzip2. Передайте сжатый файл и распакуйте его, используя многоядерные. Вы можете найти информацию о командах в Интернете.

0

Это все в одном каталоге? Существует сценарий, который запускается несколько раз: http://www.unix.com/unix-dummies-questions-answers/128363-copy-files-parallel.html

Для дерева нужно его настроить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .