If you do any I/O-intensive benchmark, please run following command before it (Otherwise you may get wrong impression of the program performance):
$ sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"
sync
means writing data from cache to file system (otherwise the dirty cache can’t be freed); “echo 3 > /proc/sys/vm/drop_caches
” will drop clean caches, as well as reclaimable slab objects. Check following command:
$ sudo sh -c "sync; echo 3 > /proc/sys/vm/drop_caches"
$ time ./benchmark
real 0m12.434s
user 0m5.633s
sys 0m0.761s
$ time ./benchmark
real 0m6.291s
user 0m5.645s
sys 0m0.631s
the first run time of benchmark
program is ~12
seconds. Now that the files are cached, the second run time of benchmark
program is halved: ~6
seconds.
References:
Why drop caches in Linux?;
/proc/sys/vm;
CLEAR_CACHES.