I have a test case for
journalctl where it spends several seconds reading from the disk. But if I try to benchmark multiple runs of the test case, I find that it's impossibly fast after the first run. Even if I try to drop caches. Why?
$ sync && echo 1 | sudo tee /proc/sys/vm/drop_caches && /usr/bin/time journalctl -b -u dev-shm.mount 1 0.01user 0.03system 0:04.50elapsed 1%CPU (0avgtext+0avgdata 30956maxresident)k 95424inputs+0outputs (424major+665minor)pagefaults 0swaps $ sync && echo 1 | sudo tee /proc/sys/vm/drop_caches && /usr/bin/time journalctl -b -u dev-shm.mount >/dev/null 1 0.00user 0.01system 0:00.08elapsed 26%CPU (0avgtext+0avgdata 31832maxresident)k 94992inputs+0outputs (422major+445minor)pagefaults 0swaps
time still shows it doing lots of IO through page faults (
inputs). I notice that if I skip the
drop_caches between runs, it shows 0 instead.