nocache コマンドは、この問題に対する一般的な答えです! https://github.com/Feh/nocache を参照するか、Debian および Ubuntu 13.10 (saucy) で見つけてください。
ピーター、rsync の --drop-cache" オプションについて警告してくれてありがとう。 fadvise での rsync 作業に基づいています。
必要なコマンドの前に「nocache」を追加するだけです。また、ファイルのキャッシュ ステータスを記述および変更するための便利なユーティリティもあります。例えば。 nocache を使用した場合と使用しない場合の効果は次のとおりです:
$ ./cachestats ~/file.mp3
pages in cache: 154/1945 (7.9%) [filesize=7776.2K, pagesize=4K]
$ ./nocache cp ~/file.mp3 /tmp
$ ./cachestats ~/file.mp3
pages in cache: 154/1945 (7.9%) [filesize=7776.2K, pagesize=4K]\
$ cp ~/file.mp3 /tmp
$ ./cachestats ~/file.mp3
pages in cache: 1945/1945 (100.0%) [filesize=7776.2K, pagesize=4K]
したがって、他のバックアップ プログラム (rsnapshot、duplicity、rdiff-backup、amanda、s3sync、s3ql、tar など) や、キャッシュを破棄したくないその他のコマンドでも機能することを願っています。
Kristof Provost は非常に近かったのですが、私の状況では、dd を使用したり、独自のソフトウェアを作成したりしたくありませんでした。そのため、解決策は rsync で「--drop-cache」オプションを使用することでした。
この質問を作成して以来、これを何度も使用しており、問題を完全に解決しているようです。 1 つの例外は、「--drop-cache」をサポートしていない FreeBSD マシンからコピーするために rsync を使用している場合です。そこで、/usr/local/bin/rsync コマンドを置き換えるラッパーを作成し、そのオプションを削除したところ、そこからのコピーも機能するようになりました。
依然としてバッファに大量のメモリを使用し、ほとんどキャッシュを保持していないように見えますが、とにかくスムーズに動作します.
$ free
total used free shared buffers cached
Mem: 24731544 24531576 199968 0 15349680 850624
-/+ buffers/cache: 8331272 16400272
Swap: 4194300 602648 3591652
カーネルは、キャッシュされたデータを再度コピーして使用しないことを知ることができません。これはあなたの情報優位性です。
ただし、swappiness を 0 に設定することもできます:sudo sysctl vm.swappiness=0.これにより、Linux は、ライブラリなどがスワップに書き込まれる前にキャッシュをドロップします。
特にヒューラム (16 ~ 32 GB) と組み合わせると非常にパフォーマンスが高くなります。