tar использует слишком много памяти для своего буфера - обходное решение?

Я tarлуг и затем сжатие набора files&directories на моем Сервере Ubuntu VPS для резервного копирования. Это только имеет 1 ГБ RAM и 128 МБ Подкачки (я не могу добавить более - OVH используют OpenVZ в качестве своего программного обеспечения виртуализации), и каждый раз tar выполнения это использует тонну памяти, поскольку это - буфер, заставляя все остальное быть выгруженным - даже когда с помощью nice -n 10.

Есть ли любой способ вызвать tar чтобы использовать маленький буфер и уменьшить, это - использование памяти? Я волнуюсь, что, после того как резервное копирование добирается, чтобы быть определенным размером, мой сервер понизится потому что tar не будет иметь достаточной памяти, поскольку это - буфер.

Я использую bzip2 для сжатия, и я уже ограничил, это - использование памяти с -4 опция.

Править: Вот что htop похож, когда я имел tar выполнение некоторое время:

enter image description here

Вот ссылка на полный gif

Редактирование 2: Вот tar, управляют, чтобы я использовал:

nice -n 20 tar --exclude "*node_modules*" --exclude "*.git/*" --exclude "/srv/www-mail/rainloop/v*"  -cf archive.tar /home /var/log /var/mail /srv /etc
1
задан 9 July 2015 в 21:14
1 ответ

На самом деле ваше изображение показывает совершенно противоположное.

Как вы можете видеть в столбце RES, tar потребление памяти довольно низкое. Использование RAM кажется , чтобы увеличиваться просто потому, что Linux активно кэширует данные, считанные командой tar. Это, в свою очередь, вызывает нехватку памяти и обратную запись грязных страниц (в основном, система очищает свой кэш записи, чтобы приспособиться к большему кэшированию чтения) и, возможно, полезные данные удаляются из кеша ввода-вывода.

К сожалению, , похоже, что tar не может быть проинструктирован использовать O_DIRECT или POSIX_FADVISE (оба из которых могут использоваться для «обхода» кеша). Итак, с использованием tar настоящего решения здесь нет ...

1
ответ дан 4 December 2019 в 00:03

Теги

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