Я хочу наиболее эффективно перенести многотерабайтный каталог в смонтированный каталог nfs по сети 1 Гбит (вероятно, ограничивающий фактор)
3 варианта -
Мне кажется очевидным, что №3 должен быть наиболее эффективным, поскольку я читаю и записываю данные только один раз. К сожалению, моя команда (tar -c dir | pigz> /mnt/nfs/dir.tgz) какое-то время кажется tar, затем zip на некоторое время, затем tar на некоторое время ... и сеть простаивает для больших кусков времени, то процессор простаивает.
Я пропустил какой-то вариант?
P.S. Мой вопрос кажется связанным с этот вопрос но на это нет ответа, и на самом деле он не задает точного вопроса о чередовании между сетью и насыщением процессора.
Возможно, вы забываете тот факт, что в UNIX / Linux процесс может одновременно выполнять только одну операцию BLOCKING I / O. Ни в функциях tar, ни в функциях сжатия нет одновременных операций чтения или записи. Ни один из этих двух процессов не обрабатывает данные во время вызовов ввода-вывода.
Существуют фильтры буферизации, которые пытаются уменьшить этот эффект, используя общую память и 2 процесса: один для чтения, а другой для записи.
В рамках этой модели вам нужно будет повторно проанализировать свои варианты, чтобы определить узкое место и фактический порядок работы системы.