Exchange: Noderunner.exe High CPU and Memory Usage

KB ID 0001412

Problem

After an Exchange 2007 to 2013 migration, the client emailed to say that noderunner.exe was maxing out the server memory and CPU.

The server was working fine other wise. (I’d previously disabled the search index on the datastore, to speed up the migration, and had only re enabled it that day so I assumed that’s what the problem was, I disabled it once more and jumped on after hours for a look.

You may also see Event ID 1009 logged;

Solution

First thing is to cap the memory that noderunner.exe uses, to do that edit the {Drive-Letter}:\Program Files\Microsoft\Exchange Server\V15\Bin\Search\Ceres\Runtime\1.0\noderunner.exe.config.

Locate the ‘memoryLimitMegabytes=”0″‘ value.

Change it from ZERO, (use everything) to 250 and save the file.

Before we go any further lets check the database index status, execute the following command;

Get-MailboxDatabaseCopyStatus | Select Name,Status,ContentIndexState

Note: Mine say FailedAndSuspended, (if yours are healthy, simply restart the services below and don’t delete the index folders).

Stop the ‘Fast search’ and ‘Host controller’ services;

Stop-Service MSExchangeFastSearch

Stop-Service HostControllerService

To find out where your Database files (.edb files) are, issue the following command;

Get-MailboxDatabase -Status | Select EdbFilePath

Go to each location, and in the same folder will be a folder with a long Hexedecimal name, (the GUID of the database). Delete the folder, repeat for each database that has a problem.

Start the services again;

Start-Service MSExchangeFastSearch

Start-Service HostControllerService

Check the index health again;

Note: If you are running Exchange 2013, make sure you update it to a cumulative update later than version 12.

Related Articles, References, Credits, or External Links

NA

Author: PeteLong

Share This Post On

1 Comment

  1. HI,
    This is a great article
    But let me add what I notice.
    While adjusting the memory size, you need to keep a good amount of RAM for NODERunner, otherwise, the Catalog will never be healthy, it will keep falling even after a full DB reseed.
    so like 250 MB is not enough (Atlease in my case)

    Post a Reply

Submit a Comment

Your email address will not be published. Required fields are marked *