Search doesn't work in Exchange Server 2013 when the NodeRunner.exe process stops

This article describes an issue that's caused by the NodeRunner.exe process. To fix this issue, follow the steps in the "Resolution" section.


When this issue occurs, you may experience the following symptoms.

Symptom 1

The Content Index State on all mailbox databases is FailedAndSuspended.

Symptom 2

The following message is logged in the Unified Logging System (ULS) logs:

 By default, Exchange ULS log files are saved in the following location:
C:\Program Files\Microsoft\Exchange Server\V15\Logging\Search

Symptom 3

The NodeRunner.exe process throws an exception when it tries to allocate more memory than the available memory. In this situation, the following errors are logged:


This issue occurs when the NodeRunners.exe process stops because of an OutOfMemory exception. Either the server is out of memory or the .NET Framework common language runtime (CLR) is forcing a memory allocation limitation on the NodeRunners.exe process. In this situation, NodeRunner.exe tries unsuccessfully to allocate more memory, generates an exception, and then stops.


To fix this issue, follow these steps:
  1. Locate the Noderunner.exe.config file. By default, this file is located along the following path:
    C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0\noderunner.exe.config
  2. Edit the file, and then locate the following key:
    <nodeRunnerSettings memoryLimitMegabytes="<value>" /> 
  3. If the value of the key is set to any value other than 0, change it to 0, as follows:
    <nodeRunnerSettings memoryLimitMegabytes="0" /> 
  4. Restart the Microsoft Exchange Host Controller Service.

About the NodeRunner.exe process

Microsoft Exchange Host Controller Service starts four worker processes, and each is named NodeRunner.exe. NodeRunner.exe is part of the Exchange search component. The individual functionality of each NodeRunner.exe process is set through configuration. The NodeRunner.exeprocess that starts single Admin node is a process of its own. Because NodeRunner.exe is a stand-alone process, it derives some of its operating properties from the NodeRunner.exe.config application configuration file during the start of the Admin node.

The following screen shot shows the four nodes of the NodeRunner.exe process: Admin, Content, Query, and Index.

Screen shot of the four nodes

If you're familiar with SharePoint Server, you probably know how to limit the memory that's allocated to the NodeRunner.exe process by using the application configuration file. However, it's unsupported in Exchange Server 2013 to limit memory allocation for NodeRunner.exe by this method.

The default setting for the minimum memory requirement for NodeRunner.exe is 0. The NodeRunner.exe process can consume and change its memory requirements dynamically, based on current requirements and available memory. However, you can set the upper limit and restrict the volume of memory that Node Runner can access by using the memoryLimitMegabytes parameter in the NodeRunner.exe.config file. If you limit memory usage by NodeRunner.exe, and if the Exchange server can't allocate memory for the NodeRunner.exe operation, the operation may fail with an OutOfMemoryException exception.

文章 ID:3094698 - 上次审阅时间:2015年10月16日 - 修订版本: 1