After having this issue on newly installed SharePoint 2013 farm in production environment, I figure it out that Single server is running out of memory. Especially, thanks to one new process noderunner.exe.
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. So, there are some things you can do to reduce the impact of Search on your system.
Solution 1
Reduce the Search Service Performance Level with this PowerShell command:
Set-SPEnterpriseSearchService -PerformanceLevel Reduced
or
Set-SPEnterpriseSearchService -PerformanceLevel PartiallyReduced, which is in between reduced and Maximal
Solution 2
Limit the Memory Footprint of NodeRunner.exe is one thing that is not so recommended. There is a configuration setting for NodeRunner.exe’s configuration file that can limit RAM usage of a single process to specific value in megabytes. This configuration file is located at: C:\Program Files\Microsoft Office Servers\15.0\Search\Runtime\1.0\noderunner.exe.config. The configuration setting is under the nodeRunnerSettings node and it’s called memoryLimitMegabytes. Its default value is 0 (unlimited). Every time you change it, you’ll need to restart all of the noderunner.exe processes.
On some blogs I have found that noderunner.exe has memory leak and this is known bug in SharePoint 2013.