Одновременное резервное копирование: теория против практики - PullRequest
0 голосов
/ 09 ноября 2010

Когда я проектирую довольно простую систему резервного копирования для Linux на python, я задаю себе вопрос: может ли быть какое-то время преимущество для резервного копирования нескольких наборов данных / архивов одновременно?

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

С другой стороны, если использовать что-то вроде bz2, будет ли преимущество многопоточности, так как более высокая нагрузка на ЦП снизит потребность в вводе / выводе? Или это промывка, поскольку все потоки будут выполнять одно и то же и, следовательно, иметь одни и те же узкие места?

1 Ответ

3 голосов
/ 09 ноября 2010

Это зависит от вашей системы. Если у вас несколько дисков, возможно, стоит распараллелить задание резервного копирования. Если у вас несколько процессоров, параллельное сжатие нескольких заданий может стоить вашего времени.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...