A Timesaver :: Run Perfmon with PowerShell
Welcome to my first post on the wonderful Tech Net Blogging Community.
Just sharing some time saving tips on how to quickly go into your Enterprise Search 2013 setup to help diagnose (for this example - content feeding and processing) issues with a set of predefined perfmon counters. Very fast and very portable. I presented this at a recent Microsoft Premier Field Engineering Conference. These are the mechanics of being able to quickly diagnose some issues. Check out this blog for a lot of detail on what you are actually looking at: https://blogs.technet.com/b/peter_dempsey/archive/2013/04/15/sharepoint-2013-monitor-and-tune-content-feed.aspx
-----------------------------------------------
1) To get started:
Here is the TN reference on the Get-Counter cmdlet which is used in my examples --> https://technet.microsoft.com/en-us/library/dd367892.aspx
-----------------------------------------------
2)How to see the counters in PS: eg - Search Content Router
What this enables you to do – create a small script that would call a specific set of counters for (crawling, feeding, CPC, QPC etc) and be able to look at a component quickly. Build a counter file that calls the specific counters addressing whatever problem you may be trying to investigate.
Script:
get-counter -counter (get-content C:\path\mycounters.txt) -MaxSamples 10 -sampleinterval 1
mycounters.txt - geared towards diagnosing CPC issues, can create additional files addressing other search component issues
\Search Flow Statistics(contentprocessingcomponent1)\# Items Queued For Processing
\Search Flow Statistics(contentprocessingcomponent1)\Input Queue Empty Time
\Search Submission Service(contentprocessingcomponent1)\# Pending Items
\Search Gatherer Projects - SharePointServerSearch(*content)\Transactions Waiting
\Search Gatherer Projects - SharePointServerSearch(*content)\Transactions In Progress
\Search Gatherer Projects - SharePointServerSearch(*content)\Transactions Completed
\Search Gatherer - SharePointServerSearch\Threads Accessing Network
\Search Gatherer - SharePointServerSearch\Threads Filtering
\Search Gatherer - SharePointServerSearch\Threads Idle
\Search Flow Statistics(contentprocessingcomponent1)\Input Queue Full Time
\Search Content Router(contentprocessingcomponent1*)\NumSuccessIndex
\Search Content Router(contentprocessingcomponent1*)\IndexTime
\Search Gatherer Content Plugin - SharePointServerSearch(_total)\Documents Lost
\Search Gatherer Content Plugin - SharePointServerSearch(_total)\Documents Failed
This will give you some nice statistics on what is going on with content processing and if there are some issues.
Timestamp CounterSamples
--------- --------------
5/30/2013 2:56:55 PM
search flow statistics(contentprocessingcomponent1)\# items queued for processing :
0
search flow statistics(contentprocessingcomponent1)\input queue empty time :
1320669544
search submission service(contentprocessingcomponent1)\# pending items :
0
search gatherer projects - sharepointserversearch(search_service_application_0_portal_content)\transactions waiting :
0
search gatherer projects - sharepointserversearch(search_service_application_0_portal_content)\transactions in progress :
0
search gatherer projects - sharepointserversearch(search_service_application_0_portal_content)\transactions completed :
0
search gatherer - sharepointserversearch\threads accessing network :
0
search gatherer - sharepointserversearch\threads filtering :
0
search gatherer - sharepointserversearch\threads idle :
0
search flow statistics(contentprocessingcomponent1)\input queue full time :
46
search content router(contentprocessingcomponent1.sp1cdca7e5860a)\numsuccessindex :
18
search content router(contentprocessingcomponent1_average)\numsuccessindex :
18
search content router(contentprocessingcomponent1_total)\numsuccessindex :
18
search content router(contentprocessingcomponent1_max)\numsuccessindex :
18
search content router(contentprocessingcomponent1.sp1cdca7e5860a)\indextime :
0
search content router(contentprocessingcomponent1_average)\indextime :
0
search content router(contentprocessingcomponent1_total)\indextime :
0
search content router(contentprocessingcomponent1_max)\indextime :
0
search gatherer content plugin - sharepointserversearch(_total)\documents lost :
0
3) It will also spit the output into the perfmon reporting GUI, so you can still get the nice readable format with the perfmon graphs. Just a matter of adding an export..(below)
Script:
get-counter -counter (get-content C:\path\mycounters.txt) -MaxSamples 10 -sampleinterval 1 | Export-counter -Force -Path C:\path\data1.blg
Comments
Anonymous
January 01, 2003
Sweet!Anonymous
May 30, 2013
Thx!Anonymous
January 30, 2014
I wrote a basic overview of some of the counters needed to monitor and tune content feeding here . ButAnonymous
March 10, 2014
hi Can you post an example of powershell you are using please.Anonymous
August 28, 2015