How to see if the crawl is still running or stuck using Perfmon?

The perfmon counters can offer useful information about the current state of search. Add the perfmon objects for “Office Server Search Archival Plugin”, “Office Server Search Gatherer”, and “Office Server Search Gatherer Projects” (or for WSS, replace “Office Server Search” with “SharePoint Search”). I always just take all the instances and all the counters for these.

The counters in “Search Archival Plugin” come from the Archival Plug-in (ARPI) and are useful in seeing the general crawl progress. If the crawl is progressing then the counters for “Total Docs in XXX Queue” will increase, stop while the properties are being flushed, and then start again from zero. One of our bigger bottlenecks is the time to flush the properties in the Archival Plug-in (ARPI).

The main counters to look at in “Search Gatherer” are “Threads Accessing Network” (in the protocol handlers) and “Thread in Plugins”. These tell you where in the pipeline the active transactions are and where the possible problems are if the transactions are all stuck in one place. If all of the threads are in plug-in or on network, there could be a problem there. These should be moving and fluctuating when crawl is running.