How to Limit NodeRunner.exe High Memory, CPU Usage

Posted jianyus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了How to Limit NodeRunner.exe High Memory, CPU Usage相关的知识,希望对你有一定的参考价值。

roblem: NodeRunner.exe is consuming a lot of memory and CPU resulted in performance issues on SharePoint 2013 server.

Solution:
NodeRunner.exe is a SharePoint 2013 Search service component and it is resource hungry. To reduce the CPU and Memory impact of this process, follow below steps:

Step 1: Reduce the CPU impact of the search service
By default SharePoint search uses "maximum" to speed up its search crawling process. To reduce the CPU usage of the search service, run this PowerShell script from any one of your SharePoint 2013 server:

Set-SPEnterpriseSearchService -PerformanceLevel Reduced

This sets Search Service Application crawl component to use less number of threads.


Step 2: Limit the NodeRunner.exe‘s Memory usage: 

  • Open the configuration file at "C:Program FilesMicrosoft Office Servers15.0SearchRuntime1.0 oderunner.exe.config" 
  • Locate the node "nodeRunnerSettings", Set the value for "memoryLimitMegabytes" attribute to specific value (E.g. 1024). By default its value is 0 (which means unlimited memory). 
    技术分享图片

Step 3: Restart Search Service
For the above steps to take effect, You have to restart SharePoint 2013 search service. Go to Services console, restart SharePoint Search Host Controller process. Or use the PowerShell cmdlet to restart Search host controller process:

Restart-Service SPSearchHostController

The downside of the above changes: Since you are restricting resources to SharePoint search service, it increases search crawl time! 

Do not limit node runner memory in Production Servers!Instead try increasing the Memory on SharePoint Production servers.

PowerShell to Set NodeRunner config:

#NodeRunner File Path
$NRFile= "C:Program FilesMicrosoft Office Servers15.0SearchRuntime1.0
oderunner.exe.config"
 
#Get the XML
$NodeRunnerConfig = New-Object XML
$NodeRunnerConfig.Load($NRFile)
 
#Set Limit to 100 MB
$NodeRunnerConfig.configuration.nodeRunnerSettings.memoryLimitMegabytes = "100"
$NodeRunnerConfig.Save($NRFile)

#Read more: http://www.sharepointdiary.com/2015/02/limit-noderunner-high-memory-cpu-usage.html#ixzz5OhFQ8yKc

http://www.sharepointdiary.com/2015/02/limit-noderunner-high-memory-cpu-usage.html

以上是关于How to Limit NodeRunner.exe High Memory, CPU Usage的主要内容,如果未能解决你的问题,请参考以下文章

How to Change John Deere Speed Limit with PLD File Editor

sh 如何限制递归文件列表的深度? - 来自http://stackoverflow.com/questions/4509624/how-to-limit-depth-for-recursive-fi

how to add them, how to multiply them

Junit : how to add listener, and how to extends RunListener to override behaviors while failed

How to POST data to backend server

limit_choices_to