8

Я перемещаю около 20 Гб в моей локальной сети (100 Мбит / с). Файлы взяты из типичной настольной системы Linux.

Будет ли сжатие их с помощью Tar\Gzip, а затем отправка их улучшить производительность?

РЕДАКТИРОВАТЬ: я перемещаю рабочее пространство разработчика, то есть много исходного и PDF-файлов, а не много мультимедиа.

8 ответов8

6

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

Если у вас большое количество небольших файлов, накладные расходы могут даже превысить объем передаваемых данных.

В таких случаях архивирование данных перед передачей может быть огромным преимуществом. Если это плохо сжимаемые данные (зашифрованные и / или уже сжатые данные), я рекомендую не сжимать архив, чтобы сэкономить много времени - просто используйте tar.

Если файлы являются сжимаемыми (несжатые растровые изображения, текст), также может иметь смысл сжатие.

5

Это во многом зависит от типа файлов, которые вы перемещаете.

  • Если ваши файлы похожи на PDF, JPEG фильмы, установочные файлы и т.д.,
    они, скорее всего, уже сжаты и не дадут вам большого преимущества.
  • Если его сжатие исходных файлов будет весьма полезным.
  • Если в нем много маленьких файлов, то по крайней мере архив tar будет полезен.

Наконец, если ваш исходный компьютер имеет много вычислительной мощности и памяти,
сжатие будет в полезное время, иначе будет достаточно только tar (на основе вышеупомянутых пунктов).

Поскольку ваша сеть - всего 100 Мбит / с, вам следует склоняться к сжатию, если это поможет.
Но если вы передаете файлы, которые не могут быть сжаты много,
Вы должны начать учет времени перевода

Кроме того, вы можете рассмотреть другие носители для передачи (например, USB/DVD).

3

Вероятно, самая быстрая техника - это обработка данных, их передача по каналу, а затем распаковка на другом конце.

Что-то вроде этого

$ tar -czf - root_dir | ssh -c blowfish remote_machine  (cd parent_dir ; tar -xzf -)

Флаг -z указывает tar на сжатие, что должно быть очень похоже на отдельный шаг gzip, который вы включаете отдельно, если хотите.

Если вам нужно скопировать или синхронизировать данные в следующий раз, вы можете использовать rsync (-z дает сжатие). В частности, если вышеуказанная команда прервана, rsync подтвердит ваши данные и отправит все, что вы пропустили.

Будет намного чище, если ssh не запрашивает у вас пароли, но я думаю, что он будет работать даже с паролями.

2

Ник прав, это зависит от данных. Вообще говоря:

  • Фотографии JPEG, фильмы и музыка вряд ли будут дополнительно сжаты tar или zip, поскольку они уже эффективно сжаты.
  • Сжатие текстовых файлов и двоичных файлов программы значительно экономит место (и, следовательно, время передачи).
2

Технически да, хотя вокруг локальной сети выгоды были бы небольшими.

В основном при сетевых передачах вы проходите несколько этапов запроса о том, готов ли пункт назначения к получению вашей информации, затем вы отправляете некоторые данные и проверяете, все ли они получили нормально. Каждый отдельный файл генерирует дополнительный шаг «Входящий новый файл» и «Завершающий этот файл». Таким образом, если вы объедините их все вместе, вы получите только одно «новое поступление файла» и одно «завершение этого файла» вместо сотен или тысяч тезисов для отправки несжатых файлов.

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

1

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

1

Да. Я испытал это и использую этот метод для резервного копирования большого объема данных. Если ваша единственная цель - скопировать файл для резервного копирования файлов на внешний жесткий диск, то, безусловно, сжатие всех файлов / папок в один или несколько файлов ZIP / rar и копирование их на внешний диск сэкономит огромное количество времени.

Запись одного большого файла на внешний диск намного эффективнее, чем запись миллионов крошечных отдельных файлов.

1

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

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