Introducing errors with memoryLimitMegabytes.


Many posts inform you about limiting the amount of memory of the SharePoint 2013 Search component by setting the “memoryLimitMegabytes” attribute to a number higher than zero. Most of these posts were created after the SharePoint 2013 preview, contained a nasty memory-leak that consumed your server memory in no time.

The problem.

When you limit the amount of memory that the Search Service uses, you might introduce new errors. The exact errors might differ but here are 3 errors that I encountered:

The item was aborted because the pipeline did not respond within the appropriate time. This item will be retried in the next crawl

Unable to connect to system client with derived management URIs. Exception: Failed to connect to system manager. Microsoft.Office.Server.Search.Administration.Topology.ApplicationAdminLayer.Reconnect()

Unable to retrieve topology component health states. This may be because the admin component is not up and running

The memory-leak is fixed in the RTM version so there is no need anymore to limit the amount of memory.

You can use the ULS logs for debugging or the logs of your search application. On my machine this folder is configured as:
C:Program FilesMicrosoft Office Servers15.0DataOffice ServerApplicationsSearchNodesA07407

(the value ‘A07407’ will be different on your machine.)

My Advice

Never change the value of the “memoryLimitMegabytes” attribute in a production environment!

If you want to limit the memory of the Search component on your development machine. I would recommend to

  • disable all your crawl schedules
  • limit the content source
  • completely stop the Search Service and restart it when needed.

One Comment

  1. Mika

    November 19, 2014

    Great blog post. This resolved my problem. There are several blog’s about tuning performance by limiting memory limit used by node runner but it does break the search in long run. At first it worked well but when content grew it the search blew.

Share Your Thoughts