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:
This sets Search Service Application crawl component to use less number of threads.
Step 2: Limit the NodeRunner.exe's Memory usage:
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:
The downside of the above changes: Since you are restricting resources to SharePoint search service, it increases search crawl time!
PowerShell to Set NodeRunner config:
Tags: noderunner.exe high cpu sharepoint 2013, noderunner exe sharepoint 2013 high cpu, noderunner.exe sharepoint 2013 high memory, sharepoint noderunner memory limit, noderunner.exe high memory sharepoint 2013, noderunner.exe sharepoint 2013 search, sharepoint noderunner reduced, sharepoint noderunner memory usage
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:
1
| Set -SPEnterpriseSearchService -PerformanceLevel Reduced
setting it to reduced is the correct way go about it:
on dev machine:
on production if hardware is tight than use PartlyReduced
on a live server where the search service is over serveral servers within a farm with 4 cores each with atleast 8gb ram:
leave it as it is:
|
Step 2: Limit the NodeRunner.exe's Memory usage:
- Open the configuration file at "C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0\noderunner.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).
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:
1
| 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:
1
2
3
4
5
6
7
8
9
10
| #NodeRunner File Path $NRFile = "C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0\noderunner.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 ) |
Tags: noderunner.exe high cpu sharepoint 2013, noderunner exe sharepoint 2013 high cpu, noderunner.exe sharepoint 2013 high memory, sharepoint noderunner memory limit, noderunner.exe high memory sharepoint 2013, noderunner.exe sharepoint 2013 search, sharepoint noderunner reduced, sharepoint noderunner memory usage
Comments
Post a Comment