devstat overhead VS precision

Alexander Motin mav at FreeBSD.org
Sat Apr 13 10:00:00 UTC 2013


Hi.

It is long known that collecting disk and GEOM statistics may cause 
significant processing overhead under high IOPS. On my recent high-IOPS 
benchmarks performance difference was reaching three times! Last time 
situation improved a lot by more active use of TSC, but there are still 
many systems where TSCs are not synchronized. I propose to switch that 
statistics from using binuptime() to getbinuptime() to solve the problem 
globally.

 From one side getbinuptime() resolution is limited by 1ms, but since 
time is usually averaged over the many I/Os, additional sub-millisecond 
precision will come from sampling. Since most of tools now show request 
processing times up to 0.1ms, that precision should be sufficient. I 
believe real disk performance is more important that n-th digit in some 
statistics.

The following patch does the change and makes disk performance 
irrelevant to the timecounter performance:
http://people.freebsd.org/~mav/devstat_time.patch

Are there any objections against it?

-- 
Alexander Motin


More information about the freebsd-geom mailing list