Назад | Перейти на главную страницу

Выполнять аналогичные задачи, интенсивно использующие диск, параллельно или последовательно в обычном Linux?

Сценарий

Я использую обычный Ubuntu 18.04 LTS с файловыми системами ext4.

я использую отдыхать для резервного копирования моих машин. Restic - это инструмент резервного копирования, который поддерживает разные серверные части (локальные, sftp, aws, gcs, ..), но только одно место назначения резервного копирования за раз. Так что я не могу сказать restic
"возьмите эти папки и одновременно создайте их резервные копии на dest1, dest2 и dest3, читая каждый файл на моем хосте только один раз".
Я знаю, что есть инструменты, которые на втором этапе синхронизируют dest1 с dest2 и т. Д., Но я не хочу вдаваться в это обсуждение здесь.

Вопрос

Разумно ли запускать restic один раз, а затем второй раз, следовательно, дважды просмотреть все файлы в соответствующих папках последовательно?

Или мой общий файловый кеш Linux будет работать лучше, если я запущу два / три рестика параллельно, чтобы одни и те же файлы читались моими процессами примерно в одно и то же время?

Или это полностью перегрузит мой диск io, потому что (по крайней мере, на жестком диске) считывающей головке потенциально придется постоянно прыгать вперед и назад?

(Как) на это влияет HDD / SSD?

-

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

Ура

В итоге я добавил переключатель в свою программу на Python (рунный), который позволяет выбрать последовательное или параллельное выполнение, и вот некоторые предварительные результаты:

локальная установка

Обычный ноутбук с NVMe SSD и ext4.

Исходный каталог:

$ du -csh tmp/
2.4G    tmp/
$ find tmp/ | wc --lines
43724
$ ls tmp/
audible-activator    django-prometheus  gosignals   js-beautify   matomotest               nextcloud-social-login   pyelasticsearch  sinnlos
batstat              dms                huestacean  landmatrix    matrix-appservice-slack  omniauth-oauth2-generic  quartiermeister  tmpfooab
christophtest        elasticsearch-HQ   jcdriver    leaflet-v-ol  mirenzeugs               postfix_exporter         restic           wagtail
cookiecutter-django  go-neb             joycon      lib_users     msw                      protonfoo                salt

Так ~2.4GB репозиториев git и других случайных файлов.

Целевые каталоги были два каталога в одной файловой системе.

Я очищал кеши Linux между запусками: sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches. И это, похоже, сработало, потому что выполнение одних и тех же команд несколько раз давало аналогичные результаты.

отдых в последовательности

$ runrestic init backup
{'init': 5.7561564445495605, 'backup': 30.630026817321777, 'total': 36.38620185852051}

отдыхать параллельно

$ runrestic init backup
{'init': 2.513888120651245, 'backup': 21.428940057754517, 'total': 23.942883253097534}

(не) заключение

На SSD вроде помогает работать параллельно.

Я сообщу, когда соберу больше данных.