Monday 8 May 2017

Search processes consuming a lot of memory

1. Search processes consuming a lot of memory




2. Fix for Memory leak by Noderunner.exe 


This however is *not* supported, and not recommended, so don't do this on production environment! If your components run out of memory they will start acting very weird and/or crash. I even have managed to kill my farm beyond repair by setting the memory limit too low, so consider yourself warned!

3. Fix Memory Leak in SharePoint 2013 Preview (Microsoft Office 2013 Component / NodeRunner.exe)


4. Throttling performance of your SharePoint 2013 Enterprise Search Service on your dev box


You can change e.g. the Performance Levels for your crawls.


Powershell Cmdlet:


1. How to check the EnterpriseSearchService

Get-SPEnterpriseSearchService |

2. How to set EnterpriseSearchService

Set-SPEnterpriseSearchService –PerformanceLevel "Reduced"

For the setting to take effect do an 


IISReset 


or 


Restart the Search Service in Central Admin


To start or stop a service by using Central Administration

  1. Confirm that the user account that is performing this procedure is a member of the Farm Administrators SharePoint group.
  2. On the the SharePoint Central Administration website, click System Settings.
  3. On the System Settings page, in the Servers section, click Manage services on server.
  4. To change the server on which you want to start or stop the service, on the Server menu, click Change Server, and then click the server name that you want.
  5. By default, only configurable services are displayed. To view all services, on the View menu, click All.
  6. To start or stop a service, click Start or Stop in the Action column of the relevant service.
  7. Click OK to start or stop the service.
Performance Level Explained:


Reduced:

Total number of threads = number of processors, Max Threads/host = number of processors







PartlyReduced:


Total number of threads = 4 times the number of processors , Max Threads/host = 16 times the number of processors


Maximum:


Total number of threads = 4 times the number of processors , Max Threads/host = 16 times the number of processors (threads are created at HIGH priority)


Node Runner:


This however is *not* supported, and not recommended, so don't do this on production environment! If your components run out of memory they will start acting very weird and/or crash. I even have managed to kill my farm beyond repair by setting the memory limit too low, so consider yourself warned!
  • Change noderunner.exe:


You can also edit the noderunner.exe config file located at:


C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0\noderunner.exe

And set a value for <nodeRunnerSettings memoryLimitMegabytes="0" />








The zero means "unlimited" here. The only thing to do is to set to the amount of RAM you'd like to set as a limit for each noderunner.exe processes.



  • Limitations 
1. Event Logs

The Execute method of job definition Microsoft.Office.Server.Search.Administration.CustomDictionaryDeploymentJobDefinition (ID 57d6f360-07a1-4be1-b651-3fff5c8667d4) threw an exception. More information is included below.



Failed to run flow Microsoft.CustomDictionaryDeployment. Correlation Id: 8be3ef9d-61ae-40d1-ecb7-473d31e8931c.



2.

After doing changes into your "noderunner.exe config" file and you start facing above mention errors under limitations. Kindly, change  "memoryLimitMegabytes  to 0" in noderunner.exe (config file)  and restart the "SharePoint Search Host Controller service"







NOTE: Be aware, these settings might make your crawling processes slower.



Hope this will help a little.

References : 

1. SharePoint 2013: Performance Issues with Search Service Application on a Development VM
2. Throttling performance of your SharePoint 2013 Enterprise Search Service on your dev box
3. Search processes consuming a lot of memory

No comments:

Post a Comment