rate limit calls to posix_fadvise()
There can be a large kernel overhead involved in POSIX_FADV_DONTNEED. There is no point in calling this per item logged, so rate limit to at most once per 2MiB written. With a simple test program that logs 100K items at WARNING level: Before: $ time strace -c -e fadvise64 log.test \ -log_dir=/dev/shm -logtofiles=true -logtostderr=false % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 100.00 12.522509 125 99957 fadvise64 ------ ----------- ----------- --------- --------- ---------------- real 0m52.671s user 0m2.194s sys 0m44.022s After: $ time strace -c -e fadvise64 log.test \ -log_dir=/dev/shm -logtofiles=true -logtostderr=false % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 100.00 0.000759 152 5 fadvise64 ------ ----------- ----------- --------- --------- ---------------- real 0m4.206s user 0m1.436s sys 0m3.153s Fixes issue #84
Showing
Please
register
or
sign in
to comment