rsyncは大量のファイルを走査するため、普通に実行するとページキャッシュに乗ったファイルが追い出されてしまう。 Linuxの場合、nocacheコマンド*1を利用することでページキャッシュを汚さずにrsyncを実行できる。リモートでもrsyncが実行されるので、以下のように実行する必要がある。
nocache rsync -aiv --rsync-patch='nocache rsync' some-host:/src/ /dest/
ただし、nocacheコマンドはDebianやUbuntuであればaptで取ってこれるが、CentOSやRHELのリポジトリにはないみたい*2。 そのため、RHELのrsyncでページキャッシュを汚さないためには、nocacheをソースで取ってきてmake installするしかない模様。
なお、rsync本体に対してページキャッシュを汚さないためのオプション --drop-cache
が提案されたことがあるが、Linux-specificすぎるとのことでWONTFIXになっている*3。それに伴い、RHELのリポジトリでもWONTFIXになっている(RHELのrsyncのみパッチが当たっているとかいうことはない)*4。