Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Apr 2013 12:59:49 +0300
From:      Alexander Motin <mav@FreeBSD.org>
To:        freebsd-geom@FreeBSD.org, freebsd-hackers@FreeBSD.org
Subject:   devstat overhead VS precision
Message-ID:  <51692C95.3010901@FreeBSD.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51692C95.3010901>