Simple long-term kernel profiler?

I have an issue at two customers where the embedded system seems to
“freeze” every few weeks for about 10 to 30 seconds. I’ve tried using
PerfLog (a logging version of Performance Monitor), but that “freezes”
as well and we don’t get useful data. It’s not the hardware since we’ve
replaced that. We suspect it’s some of the third-party software on the
system (SQL Server plus some other stuff), but we’d like some evidence
of that.

What I’d like is a kernel-mode profiler that just samples the
instruction pointer every millisecond or so and then every X seconds it
logs to disk a “summary” of that time period, such as which modules had
hits, and basic %CPU stuff. Ideally, it would even use some system
interrupt instead of relying on timers since I don’t know what IRQL the
“freeze” is happening at so DISPATCH_LEVEL timers might not work.

I’ve used Intel Vtune in the past, and that’s great, but overkill here
since I’m not on-site so I need something that I can run remotely for
weeks at a time between the collection of data. Thus, it needs to dump
the collection buffers to disk every once in a while.

I’ve been looking at KernRate, and that’s pretty cool, but like Vtune,
isn’t intended for long-term monitoring (but maybe I could throw a
wrapper around it).

Also note that “kernprof” in the Resource Kit is also not what I’m
looking for since that just enables more counters for Performance
Monitor to use.

Does anyone have any recommendations for a simple “kernel profiler”?

Thanks in advance!