Kristopher Loranger

Internet mechanic and enterprise search ninja teachings

SharePoint 2013 noderunner.exe process information

SharePoint 2013 noderunner.exe process information

Rate This
  • Comments 2

At just about every customer I speak with I always get asked this same question, also after my recent SharePoint 2014 conference presentation I got asked the same question multiple times.

Question:

How do I find out which Search component under noderunner.exe is taking up all my (CPU|Memory)?

Usually after seeing this slide or something similar:

 

Solution #1 (aka the easy way):

Download Microsoft's SysInternals:

http://technet.microsoft.com/en-us/sysinternals/bb545021.aspx

Specifically Process Explorer or "procexp.exe":

http://technet.microsoft.com/en-us/sysinternals/bb896653

 

Once this is installed and running you will see the hostcontroller.exe process with the multiple noderunner.exe sub processes.

Mouse over the process that you are seeing CPU or Mem contention with and you will get your answer of which process is causing the issue.

Alternatively you can right click on the titles -> Select Columns... -> Add Command Line and you will see the same information 

*Note below the "AnalyticsProcessingComponent1" is taking up the most memory and the PID is there for reference.

Solution #2 (aka the hard way or no install way):

Using WMIC calls you can gather the info needed:

C:\>WMIC /OUTPUT:C:\ProcessListWMIC.txt PROCESS get Caption,ProcessId,KernelModeTime,UserModeTime,PrivatePageCount,WorkingSetSize,Commandline

output:

noderunner.exe               "C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0\NodeRunner.exe" --noderoot "C:\Program Files\Microsoft Office Servers\15.0\Data\Office Server\Applications\Search\Nodes\991EE7\AnalyticsProcessingComponent1" --addfrom "C:\Program Files\Microsoft Office Servers\15.0\Data\Office Server\Applications\Search\Nodes\991EE7\AnalyticsProcessingComponent1\Configuration\Local\Node.ini" --tracelog "C:\Program Files\Microsoft Office Servers\15.0\Data\Office Server\Applications\Search\Nodes\991EE7\AnalyticsProcessingComponent1\Logs\NodeRunner.log"  2696875000      954486784         3212       50110312500   862552064       

Where these numbers are the performance measurements:

Memory should be rather simple, this is in bytes.

PrivatePageCount  - 954486784 (or 910 megabytes)
WorkingSetSize (Mem) - 862552064 (or 822 megabytes)

CPU, WMI tracks processor time using two different properties: KernelModeTime and UserModeTime. To track total processor time we need to add the values of these two properties. In addition, WMI tracks processor time in 100-nanosecond units. We also divide the sum of these two properties by 10,000,000, something that will convert 100-nanosecond units to seconds

KernelModeTime (CPU) - 2696875000 
UserModeTime (CPU) - 50110312500 

For a quick PowerShell example on how to convert this, visit the always great scripting guy:

http://blogs.technet.com/b/heyscriptingguy/archive/2005/09/22/how-can-i-monitor-the-activity-level-of-a-process.aspx

Leave a Comment
  • Please add 5 and 7 and type the answer here:
  • Post
  • You can also use the built in Task monitor. You will need to add an extra column that displays the "Command Line" and when you view the noderunner.exe processes in Task Monitor you can then see the command line used to start the process. Each entry will have a parameter which indicates the task being carried out by the noderunner.

  • James, just checked mine on server 2012 under the details tab and see the same. Thanks!

Page 1 of 1 (2 items)