rsyncが大量のファイルをバックアップする際に大量のメモリを消費する解決方法
1442 ワード
linuxのリリース版の多くはrsyncを持参しているが、バージョンは低く、一般的に2.6である.Xは2.Xのバージョンではrsyncがバックアップする場合はリストを先にバックアップ(追加または削除)し、大量のファイルを処理する場合はメモリが消費されます.バックアップの際、rsyncがスキャンした各ファイル(ディレクトリも同じ)は、リストに約100バイトのメモリを占めており、--deleteパラメータを追加すると、より多くのメモリが消費されます.例えば、私のところのサーバーは、約800万枚の画像で、更新が頻繁で、ファイル数の増加が速く、毎日約10万枚増加する差はありません.バックアップ時、rsyncは約2 G近くのメモリを占有し、大量のメモリを占有し、サーバの物理メモリが不足し、swapに使用され、より高いiowait(交換メモリ)を生成し、rsyncリストが遅くなり、サーバ上の業務に影響を及ぼす.このような場合、rsync 3.Xが登場する前に、バックアップ操作をいくつかの小さなバックアップ操作に分割することが一般的に提案されていました.例えば、10個のピクチャディレクトリが一緒にバックアップされていたが、現在は10個のバックアップ操作に分解され、毎回そのうちの1つだけがバックアップされている.また、ディレクトリの深さを減らすことをお勧めします.これにより、ディレクトリの数を減らすことができ、rsyncが消費するメモリを減らすことができます.他にもdigisyncというソフトウェアがあり、Gレベルのファイル数をバックアップするために使用されています.
rsync 3.Xはincremental file listを採用し、従来の2.Xに比べて、現在はリストしながらバックアップ(追加または削除)しています.これは、大量のファイルのバックアップ操作にとって、多くの時間を節約することに違いありません.実測によると、rsync 3.0.4バックアップ時に消費されるメモリは約4 Mで、1つのapacheプロセスと消費されるメモリの差は多くない.
rsyncのホームページはhttp://samba.anu.edu.au/rsync/現在の最新の安定バージョンはrsync-3.1.1です
次にrsync--versionを実行してバージョン番号を見てみましょう
ソースホストと宛先ホストはrsync 3にアップグレードする必要があります.Xはrsync 3に使用できる.Xの新しい特性.
特筆すべきは、2006年11月6日にversion 2.6.9がリリースされてから、2008年3月まで3.0がリリースされたため、長い間、多くのファイルバックアップ操作を処理する方法を探さなければなりません.
rsync 3.Xはincremental file listを採用し、従来の2.Xに比べて、現在はリストしながらバックアップ(追加または削除)しています.これは、大量のファイルのバックアップ操作にとって、多くの時間を節約することに違いありません.実測によると、rsync 3.0.4バックアップ時に消費されるメモリは約4 Mで、1つのapacheプロセスと消費されるメモリの差は多くない.
rsyncのホームページはhttp://samba.anu.edu.au/rsync/現在の最新の安定バージョンはrsync-3.1.1です
cd /usr/src/
wget http://samba.anu.edu.au/ftp/rsync/src/rsync-3.1.1.tar.gz
tar xzvf rsync-3.1.1.tar.gz
cd rsync-3.1.1
./configure --prefix=/usr
make
make install
次にrsync--versionを実行してバージョン番号を見てみましょう
ソースホストと宛先ホストはrsync 3にアップグレードする必要があります.Xはrsync 3に使用できる.Xの新しい特性.
特筆すべきは、2006年11月6日にversion 2.6.9がリリースされてから、2008年3月まで3.0がリリースされたため、長い間、多くのファイルバックアップ操作を処理する方法を探さなければなりません.