You may have noticed that the hardware requirements for SharePoint 2013 Server are quite hefty. Many SharePoint 2013 performance issues have been attributed to lack of resources. Although meeting the minimum performance specs is highly recommended, you can tweak SharePoint 2013 to work with less resources.
The following tips are some that I have collected while looking for ways to improve SharePoint 2013 performance. Some of these will help SharePoint’s performance however, my experience has been that unless you have a server that meets the minimum SharePoint 2013 requirements, the Search function will still bring your SharePoint server to a crawl.
The only way that I have been able to run SharePoint efficiently on a less than ideal server is to completely disable the search feature.
If however, you want to try and tweak SharePoint before completely turning off the search service, be aware that performance results will vary depending on your server’s RAM and CPU speed.
Before You Begin: Stop/Disable the SharePoint 2013 Search Service
If your SharePoint 2013 is running like a 3 legged turtle, temporarily disable the Search Host Controller and the Search Server. This will render your SharePoint Server usable until you complete these tasks. Note: The SharePoint Timer Service will re-start both the Search Host Controller and the Server Search service, so you may want to temporarily disable the Timer Service as well.
The services to disable are SharePoint Search Host Controller and SharePoint Server Search 15. You can find these services by running services.msc from a command prompt. Once you have finished, don’t forget to enable them again.
Here are the steps to fix SharePoint 2013 performance issues
1. Update SharePoint 2013 March patch update
2. Reduce the search crawl time interval and properly configure SharePoint 2013 Search
3. Reduce Noderunner’s RAM utilization
4. Clear the search database and re-initialize the SharePoint 2013 search crawler
Update SharePoint with March 2013 Patch Update KB2767999
Updating SharePoint with the March 2013 Patches fixes search-related performance problems. Note that you should disable the SharePoint Timer Service first, then SharePoint Search Host Controller and the SharePoint Server Search before installing the updates. (Detailed instructions here)
· SharePoint Server 2013: http://support.microsoft.com/kb/2767999
· SharePoint Foundation 2013: http://support.microsoft.com/kb/2768000
How to Reduce the Search Feature Crawl Time Interval and Configure SharePoint 2013 Search
By default, the search feature is set to crawl every 20 minutes. This is nice if you have a monster server, but if you are not so lucky, reducing the crawl rate will yield much better performance. If the SharePoint server hosts a large content database, it may take more than 20 minutes to index. By the time the crawler is finished, it’s time to start again! This leaves you with a perpetually crawling indexing function.
To reduce the search index time interval:
Open Central Administration > General Application Settings > Farm Search Administration
Click on Search Service Application and then on the Content Sources menu link.
Locate your site, click on the drop down menu and then select edit. In the start address, make sure that you have entries for your FQDN, your default Web as well as the SPS3 Protocol Handler. For example: if your SharePoint server’s NetBIOS name is SP01, then you should have an entry for http://SP01 and SPS3://SP01 in addition to your Web site FQDN. This is necessary for the search feature to properly work. If the search index does not properly work, continual searches will damper performance. Once search is working properly, server performance will greatly increase.
Next, set a full and incremental crawl schedule so that the crawl takes place during off-peak usage times. The older your server, the less frequent you may want to make the crawls.
Once you have finished, click OK to save the changes.
How to Reduce noderunner.exe’s RAM Utilization
On the SharePoint 2013 server, open Server Manager -> Tools -> Windows PowerShell ISE
Click File -> Open and navigate to
C:Program FilesMicrosoft Office Servers15.0SearchRuntime1.0
If you cannot see noderunne.exe.config, click on the drop down next to file name and select All Files (.)
Modify the following line:
Noderunner.exe is set to “0” by default, which means unlimited memory usage. Change the “0” to a number in megabytes to limit the total amount of ram that it can use.
Click save and exit. Restart the SharePoint server.
You can greatly increase SharePoint 2013 server performance by stopping the following services:
· SharePoint Search Host Controller
· SharePoint Search Server 15
Of course, this should be done if you are not using the search service. If you are, this may not be an option.
If that’s the case, your best option may be to increase your server’s available RAM to meet or exceed the minimum requirements. You can also mitigate the performance effects caused by the search service if you reduce the amount of Ram available to noderunner.exe however this is less desirable than stopping the search services.
Reset the Search Index and Initialize a Full Crawl
Finally, re-initialize the search index to clear out the database and re-initialize the crawl. To do this, go to Central administration –> General Application Settings –> Farm Search Administration –> Search Service Application. Select Index Reset from the crawling menu and then click on the reset now button.
Once you have reset the index, click on content sources and select start all crawls.