Capturing a snapshot of user stacks

Wim Lewis <[email protected]> Mon, 6 Apr 2015 18:40:05 -0700
Newsgroups gmane.os.freebsd.performance
Message-ID <[email protected]>
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 / [email protected]


_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "[email protected]"