Я tar
луг и затем сжатие набора files&directories на моем Сервере Ubuntu VPS для резервного копирования. Это только имеет 1 ГБ RAM и 128 МБ Подкачки (я не могу добавить более - OVH используют OpenVZ в качестве своего программного обеспечения виртуализации), и каждый раз tar
выполнения это использует тонну памяти, поскольку это - буфер, заставляя все остальное быть выгруженным - даже когда с помощью nice -n 10
.
Есть ли любой способ вызвать tar
чтобы использовать маленький буфер и уменьшить, это - использование памяти? Я волнуюсь, что, после того как резервное копирование добирается, чтобы быть определенным размером, мой сервер понизится потому что tar
не будет иметь достаточной памяти, поскольку это - буфер.
Я использую bzip2
для сжатия, и я уже ограничил, это - использование памяти с -4
опция.
Править: Вот что htop
похож, когда я имел tar
выполнение некоторое время:
Редактирование 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
На самом деле ваше изображение показывает совершенно противоположное.
Как вы можете видеть в столбце RES, tar
потребление памяти довольно низкое. Использование RAM кажется , чтобы увеличиваться просто потому, что Linux активно кэширует данные, считанные командой tar. Это, в свою очередь, вызывает нехватку памяти и обратную запись грязных страниц (в основном, система очищает свой кэш записи, чтобы приспособиться к большему кэшированию чтения) и, возможно, полезные данные удаляются из кеша ввода-вывода.
К сожалению, , похоже, что tar
не может быть проинструктирован использовать O_DIRECT или POSIX_FADVISE (оба из которых могут использоваться для «обхода» кеша). Итак, с использованием tar
настоящего решения здесь нет ...