Anda dapat melakukannya seperti ini:
# sync # (move data, modified through FS -> HDD cache) + flush HDD cache
# echo 3 > /proc/sys/vm/drop_caches # (slab + pagecache) -> HDD (https://www.kernel.org/doc/Documentation/sysctl/vm.txt)
# blockdev --flushbufs /dev/sda
# hdparm -F /dev/sda
# NEXT COMMAND IS NOT FOR BENCHMARKING:
# should be run before unplug, flushes everything possible guaranteed.
# echo 1 > /sys/block/sdX/device/delete
Anda dapat menggunakan strace untuk melihat bahwa ini adalah tiga syscall yang berbeda
Juga, mungkin diinginkan untuk mematikan cache HDD menggunakan hdparm, tidak yakin apa yang Anda tolok ukur.
Dengan cara apa pun, Anda tidak dapat mencegah HDD menyimpan cache 64/32/16 MB terakhir dari data yang baru saja digunakan. Untuk mematikan cache itu, cukup tulis sejumlah nol (dan siram) + baca beberapa tempat yang tidak terkait dari HDD. Ini diperlukan karena cache dapat dibagi menjadi bagian baca dan bagian tulis. Setelah itu, Anda dapat membandingkan HDD.
Sepertinya Anda menginginkan perintah sinkronisasi, atau fungsi sync().
Jika Anda ingin membersihkan cache disk:echo 3 | sudo tee /proc/sys/vm/drop_caches