Stop NodeRunner RAM Drain in SharePoint: 5-Min Fix
At a Glance
- Target Audience
- SharePoint Administrators
- Problem Solved
- NodeRunner.exe unlimited RAM consumption leading to server performance degradation in SharePoint 2013.
- Use Case
- Tuning SharePoint 2013 search components on memory-constrained servers.
<p>Most sysadmins treat server memory leaks like a pest control problem. They open Task Manager, find the process eating 90% of the RAM, and kill it.</p>
<p>It never works. You cannot just terminate core services and expect your environment to stay stable.</p>
<p>If you are running SharePoint 2013, you have probably stared at <code>NodeRunner.exe</code> dominating your resource monitor. Your server is crawling. Your users are complaining. But before you force-quit those processes, you need to understand what they actually do.</p>
<p>NodeRunner is not a rogue application. It is the core Microsoft SharePoint Search Component managed by the SharePoint Search Host Controller Service.</p>
<p>When you look at your task manager, you will see multiple instances of it. That is by design. Each independent process hosts one of six critical search components:</p>
<ul>
<li>Crawl</li>
<li>Content Processing</li>
<li>Index</li>
<li>Analytics</li>
<li>Query Processing</li>
<li>Search Administration</li>
</ul>
<p>The problem is not the service itself. The problem is the default configuration.</p>
<p>Out of the box, Microsoft gave this executable a blank check. If you open the configuration file, you will find this exact line: <code><nodeRunnerSettings memoryLimitMegabytes="0" /></code>. That zero means the process has unlimited access to your RAM. It will consume everything you give it until the server chokes.</p>
<p>You do not need a massive hardware upgrade to fix this. You just need to set boundaries.</p>
<p>Here is the exact process to stop the memory leak and cap the resource drain. It takes five minutes.</p>
<p><strong>1. Throttle the Performance Level</strong><br>Open your SharePoint PowerShell window. You need to tell the search service to stop running at maximum capacity. Run this command:<br><code>Set-SPEnterpriseSearchService -PerformanceLevel Reduced</code></p>
<p><strong>2. Cap the Memory Limit</strong><br>Navigate to the search runtime directory at <code>C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0</code>.<br>Open <code>noderunner.exe.config</code> in a text editor.<br>Find the memory limit node and change the value from <code>0</code> to a hard cap like <code>250</code>.<br>It should look like this: <code><nodeRunnerSettings memoryLimitMegabytes="250" /></code></p>
<p><strong>3. Restart the Service</strong><br>Open your services console and restart the "SharePoint Search Host Controller" service.</p>
<p>That is it. No magic tricks. It is just a simple configuration change that forces your tools to respect your infrastructure.</p>
<p>You can read more about the original context here.</p>
