私はtar
ingしていて、バックアップのためにUbuntu ServerVPSで一連のファイルとディレクトリを圧縮しています。 1GBのRAMと128MBのスワップ(これ以上追加することはできません-OVHは仮想化ソフトウェアとしてOpenVZを使用します))しかなく、tar
を実行するたびに1トンを使用しますバッファ用のメモリが不足しているため、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
メモリ消費量は非常に少なくなっています。 Linuxがtarコマンドによって読み取られたデータをアクティブにキャッシュしているという理由だけで、RAM使用法表示増加します。これにより、メモリの負荷とダーティページのライトバックが発生します(基本的に、システムは書き込みキャッシュをフラッシュして、必要なより大きな読み取りキャッシュに対応します)、場合によっては、有用なデータがI/Oキャッシュから削除されます。
残念ながら、tar
自体はO_DIRECTまたはPOSIX_FADVISE(どちらもキャッシュを「バイパス」するために使用できます)を使用するように指示できないようです。したがって、tar
を使用しても、実際の解決策はありません...