So the Dude (that’s me) has gone over how to collect xperf traces a few times now, but what do we do after we’ve collected a solid .etl file you may ask? Well, that’s what this post is all about. This is how the Dude does it. The Dude you see is listening to Simple Man by Lynyrd Skynyrd right now, in a loop while flying over the Atlantic on the way to TechEd Amsterdam, so he’s in a mentoring mood…
So I open this trace for a slow boot machine in xperfview.exe, and it looks like this:
We are, of course, looking for patterns, as Clint Huffman would say. Patterns of analysis that lead us to reproducible solutions. That’s the win of course.
So what do we see in these first two graphs? Any patterns, anything that stands out? Maybe in the second graph we see that blue line running for a long time? This trace, by the way, is of the Dude’s own machine, on a Seagate Momentus XT 500 GB drive. So a boot time of 300 seconds – 120 for post boot delay = 180 seconds to get to the desktop. Completely unacceptable. The Dude is a busy man!
So what’s going on here? Lets overlay the disk activity instead of just showing it to you…
Is it natural and expected during boot to see disk idle while CPU grinds on an SVCHOST (I’m having a hard time screen shotting it to show you the highlight of that process, but here’s the thread in question in the Thread Activity:
That’s a bit more damning isn’t it? So what is that thread up to, right click on CPU Sampling by Thread and Select Summary Table and we’ll find out:
Ok, there’s our culprit, SVCHOST.EXE 1228, so we expand him:
This SVCHOST is spending all his time (and most of the time of CPU Scheduling on the box except that pesky IDLE process) grinding on REPDRVFS.DLL. Anyone have their bell rung on that one? It’s one of the classic SBSL hotfixes, http://support.microsoft.com/kb/2617858.
The Dude saw 2 members of Public Enemy at the Airport today, they still rock Europe. The Dude knows what time it is!