Issue: My virtual development machine is allocated 8 GB RAM out of 16 GB of Host. Still it runs very slow. In order to develop things I have to stop the Search service and memory consumption reduced to ~5GB from 6-7GB. But this is just a work around what if I need to build some module which requires Search service.
A quick investigation in Task Manager highlight Memory usage by search components are much large then other processes. Several NodeRunner.exe processes consume lots of Memory and CPU. The culprit processes are Microsoft SharePoint Search component.
Although there is no problem with just killing the noderunner.exe processes in Task Manager; SharePoint creates them again almost immediately.
The architecture of search has undergone lot of changes in SharePoint 2013. Many of the core components are replaced by the FAST Search components. Below are a few new components which are added in the new architecture
- Crawl Component
- Content Processing Component
- Query Processing Component
- Index Component
- Analytic Processing Component
All these components run as a process called ‘noderunner.exe’. On a default single server installation of SharePoint there will five instances of noderunner.exe (one for each of the component listed above). There is another process called ‘Host Controller’, which monitors the noderunner processes. If any of the noderunner.exe fails, the host runner will restart that process.
1. Open SharePoint 2013 Management Shell and type in:
Set-SPEnterpriseSearchService -PerformanceLevel Reduced
2. To ensure the setting has been changed enter the following command:
3. Open NodeRunner process configuration file below in Notepad
C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0\noderunner.exe.config.
Update <nodeRunnerSettings memoryLimitMegabytes=”0″ />.
This is the configuration to limit NodeRunner process memory usage, replace 0 to acceptable number like 100 or 250.
4. Restart SharePoint Search Host Controller service. Better if it is possible to restart the server.
Search has become the most integral part in SharePoint 2013 now. So, it’s not a good idea to stop search service or any of its component. But one can limit the memory usage or reduce the performance level for Search Service. By default the performance level for a Search Service is set to Maximum.
Happy SharePointing 🙂 !!