Perintah nocache adalah jawaban umum untuk masalah ini! Lihat https://github.com/Feh/nocache atau temukan di Debian dan Ubuntu 13.10 (cakep).
Terima kasih, Peter, karena telah mengingatkan kami tentang opsi --drop-cache" di rsync. Tapi itu ditolak di hulu (Bug 9560 – opsi drop-cache), mendukung solusi yang lebih umum untuk ini:perintah "nocache" yang baru berdasarkan pekerjaan rsync dengan fadvise.
Anda cukup menambahkan "nocache" ke perintah apa pun yang Anda inginkan. Ini juga memiliki utilitas yang bagus untuk mendeskripsikan dan memodifikasi status cache file. Misalnya. berikut adalah efek dengan dan tanpa 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]
Jadi mudah-mudahan itu akan berfungsi untuk program cadangan lainnya (rsnapshot, duplicity, rdiff-backup, amanda, s3sync, s3ql, tar, dll) dan perintah lain yang Anda tidak ingin merusak cache Anda.
Kristof Provost sangat dekat, tetapi dalam situasi saya, saya tidak ingin menggunakan dd atau menulis perangkat lunak saya sendiri, jadi solusinya adalah menggunakan opsi "--drop-cache" di rsync.
Saya telah menggunakan ini berkali-kali sejak membuat pertanyaan ini, dan tampaknya menyelesaikan masalah sepenuhnya. Satu pengecualian adalah ketika saya menggunakan rsync untuk menyalin dari mesin FreeBSD, yang tidak mendukung "--drop-cache". Jadi saya menulis pembungkus untuk mengganti perintah /usr/local/bin/rsync, dan menghapus opsi itu, dan sekarang berfungsi menyalin dari sana juga.
Itu masih menggunakan sejumlah besar memori untuk buffer, dan tampaknya hampir tidak menyimpan cache, tetapi tetap bekerja dengan lancar.
$ free
total used free shared buffers cached
Mem: 24731544 24531576 199968 0 15349680 850624
-/+ buffers/cache: 8331272 16400272
Swap: 4194300 602648 3591652
Kernel tidak dapat mengetahui, bahwa Anda tidak akan menggunakan data yang di-cache dari penyalinan lagi. Ini adalah keunggulan informasi Anda.
Tapi Anda bisa mengatur swapiness ke 0:sudo sysctl vm.swappiness=0. Ini akan menyebabkan linux menjatuhkan cache sebelum perpustakaan, dll. Ditulis ke swap.
Bekerja dengan baik untuk saya juga, terutama yang sangat berperforma tinggi dalam kombinasi dengan ram besar (16-32 GB).