Articles about European Sharepoint Hosting Service
European SharePoint 2013 Hosting :: Find Performance Issue on SharePoint 2013
Background
SharePoint 2013 has now as designed the architecture of FAST Search. This is one of the important reasons why more and more corporates are now switching to SharePoint 2013 and not to other collaboration platform’s.
It sound perfect to have a SharePoint Server 2013 with fast; but if you’re on a development environment with limited hardware resources, the chance exists that you’re Virtual Machine became too slow or even worst it will not respond anymore and the only way is reboot your server.
I have a SharePoint Farm installed on my laptop and only 2 Service Applications has been configured:
- Search Service Application
- Managed Metadata Service Application
Nobody is using or connected to the SharePoint Farm but the RAM has almost reached the Maximum
As you can see “Noderunner.exe” (Microsoft SharePoint Search Component) is itself consuming a lot of memory and the same Process is running multiple times. Noderunner.exe is the new executable of search service on SharePoint 2013. This process can’t turn it off because Search is one of essential service application in SharePoint 2013, and it is integrated in many features.
Find Problem
Let’s kill manually these services and see if my SharePoint site is still answering. Select your process and hit “End Process Tree”. This will kill the Process and all children that are attached to him.
As I’m on my Development machine I’m doing the same operation on all the Processes.
And Strike! Everything related to the Search (Content Search, Web Part …) is broken. I can browse to my Website but can’t execute anything related to the Search Service Application. As you can see this isn’t the best approach to gain performance.
Test
It’s really annoying because the Search Service Application shouldn’t not cause so much damage on our SharePoint Farm.
On SharePoint 2010 I knew we could configure the Search Service Performance Level with powerhsell.
Powershell Cmdlet:
Get-SPEnterpriseSearchService | Set-SPEnterpriseSearchService –PerformanceLevel “PartlyReduced”
Performance Level Explained:
- Reduced: Total number of threads = number of processors, Max Threads/host = number of processors
- PartlyReduced: Total number of threads = 4 times the number of processors , Max Threads/host = 16 times the number of processors
- Maximum: Total number of threads = 4 times the number of processors , Max Threads/host = 16 times the number of processors (threads are created at HIGH priority)
And in fact on SharePoint 2013 it’s the same scenario. After searching a while I found on TechNet this article: http://technet.microsoft.com/en-us/library/ff608126.aspx who actually confirms my theory.
Open Powershell with a Domain Account who has Farm Administrator Rights and hit Get-SPEnterpriseSearchService and as imagined the PerformanceLevel is set up to Maximum.
To change this to reduced or partly reduced hit Set-SPEnterpriseSearchService -PerformanceLevel Reduced and restart the SharePoint Search if your Virtual machine is still answering. After this manipulation your SharePoint Server will be able to breathe and you can continue to work.
Test: Not tested way
You can also say that you want to have the Maximum Performance Level and refuse to change it to reduced.
There is a Config file for NodeRunner.exe’s configuration file that can limit RAM usage of a single process to specific value in megabytes.
You can find it under :
C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0\noderunner.exe.config.
The configuration setting is called memoryLimitMegabytes and the default value is 0 (I guess unlimited). You can hit the value you want, save the file and restart your Search Service.
Print article | This entry was posted by Derek Bierhoff on November 25, 2013 at 7:43 am, and is filed under European SharePoint 2013 Hosting. Follow any responses to this post through RSS 2.0. You can leave a response or trackback from your own site. |