Как я могу ограничить страницу размер cache/buffer

Моя проблема - это: Мой ноутбук имеет относительно медленную дисковую подсистему (AMD, я не собираюсь покупать лучший), и я копирую свое системное использование rsync который работает хорошо на меня. Однако во время процесса резервного копирования, чтение файлов читается в буфер/кэш системы, которая в конечном счете инициировала систему подкачки.

Например, выполнение cat Win10.qcow2 > /dev/null файл на 60 ГБ приведет к

free -h
              total        used        free      shared  buff/cache   available
Mem:           15Gi       2.2Gi       210Mi       170Mi        13Gi        12Gi
Swap:          30Gi        14Mi        30Gi

и если я пишу в физическое устройство, как мой резервный диск USB, подкачка начинает использоваться, до нескольких ГБ. Я действительно имею vm.swappiness = 0 в /etc/sysctl

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

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

То, что я попробовал, использует lxc, который не ограничил системное использование буферов, docker который я еще не мог полностью выяснить, и я пытаюсь добраться lxd при выполнении, но мне будет требоваться некоторое время для понимания этого один.


Существует программа nocache который я думаю работы, но rsync затем не производит индикаторы хода выполнения.

1
задан 16 December 2018 в 02:04

1 ответ

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

Согласно https://linux.die.net/man/1/rsync:

- оперативный

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

Это имеет несколько эффектов:

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

(2) данные файла будут в непоследовательном состоянии во время передачи,

(3) данные файла можно оставить в непоследовательном состоянии после передачи, если передача прервана или если обновление перестало работать,

(4) файл, который не имеет полномочий записи, не может быть обновлен, и

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

ПРЕДУПРЕЖДЕНИЕ: Вы не должны использовать эту опцию обновить файлы, к которым получают доступ другие, так быть осторожными при желании использовать это для копии.

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

Опция подразумевает --partial (так как прерванная передача не удаляет файл), но конфликтует с --partial-dir и --delay-updates. До rsync 2.6.4 --inplace было также несовместимым с --compare-dest и --link-dest.

2
ответ дан 7 December 2019 в 13:20

Другие вопросы по тегам:

Похожие вопросы: