HAST performance / dtrace / _umtx_op
Jilles Tjoelker
jilles at stack.nl
Sat Apr 26 11:29:46 UTC 2014
On Sat, Apr 26, 2014 at 11:30:25AM +0100, Karl Pielorz wrote:
> I've been looking at HAST recently - and noticed there's a huge
> performance hit (on 10-STABLE anyway) even if you setup a disk with a
> remote of 'none' - switching from the 'raw' disk to '/dev/hast/disk'
> shows a 50% performance hit [in testing having an active secondary via
> 10Gbit link doesn't seem to show any further performance drop].
> Thinking of digging deeper I setup a single disk HAST system (with no
> remote node) and ran dtrace on the daemon handling that disk. I then
> DD'ed 1Gbyte of data to that disk.
> The output from dtrace shows:
> "
> Elapsed Times for PID 5219,
>
> SYSCALL TIME (ns)
> pread 4439902
> pwrite 7617448542
> ioctl 11370282332
> sigtimedwait 20015976362
> _umtx_op 36514993910
> "
> To my untrained eye that looks like it spent more time on locking than
> anything else? - Followed by ioctl's - then, considerably less time on
> pread/pwrite (which must be the bit that's copying the data)
> Presumably the time spent in sigtimedwait would have actually been
> 'waiting' time - i.e. not active CPU usage kind of time?
> Does that seem to be the case? - At least then I'll hopefully have
> some pointer where to look further for why there's such a performance
> hit.
_umtx_op implements blocking not only for mutexes but also for condition
variables, and in the latter case waiting for a long time does not
indicate a problem.
--
Jilles Tjoelker
More information about the freebsd-hackers
mailing list