I’m looking for a tool which can capture all (or a selected subset) of the user 
stacks on the system, even for tasks that are blocked in a syscall at the time.

Dtrace can capture a user stack but only when an event happens in that task; 
and procstat -k can capture all the stacks but only the kernel stacks. Is there 
a way to, in effect, have a dtrace probe fire in every blocked thread? Or 
another way to get this information?

A little explanation: I’m trying to discover why a system occasionally becomes 
slow. When this happens, I want to capture some profiling information for later 
perusal. I can get a lot of information from dtrace (a la 
http://www.brendangregg.com/FlameGraphs/offcpuflamegraphs.html ) and pmc, but 
that won’t tell me anything about a process that’s blocked the whole time, or 
is blocked at the start of the interval but unblocks partway through (as is 
likely to be the case if I only start collecting data once the problem occurs).

Any ideas?


Wim Lewis / w...@omnigroup.com


_______________________________________________
freebsd-performance@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "freebsd-performance-unsubscr...@freebsd.org"

Reply via email to