Domanda

I've got a very slow SharePoint 2013 environment. Pages load very slowly, even using a warm up script. My suspicion is that the current implementation of the Distributed Cache Service is to blame.

The SharePoint farm consists of 2 Web Servers and one Database Server.

Services summary:

WFE1:

  • Distributed Cache Service,
  • SharePoint Server Search,
  • Search Host Controller Service,
  • Managed Metadata Web Service,
  • Secure Store Service,
  • Claims to windows Token Service,
  • Central Administration,
  • User Profile service,
  • ...

WFE2:

  • Distributed Cache Service,
  • Central Administration,
  • Claims to Windows Token Service
  • ...

Both web servers had their Physical Memory increased to 14 GB. But the Distributed Cache Service Memory Allocation was not adjusted accordingly.

Distributed Cache Service Memory Allocation:

  • WFE1: 180 MB
  • WFE2: 180 MB

At this moment the it's a Cache Cluster that uses Collocated mode.

Could the low amount of memory size allocation to the Distributed Cache server be the cause of the slow SharePoint 2013 environment?

I would like to increase the Distributed Cache Service memory allocation, since I hope this will result in a significant performance increase.

The catch however is that WFE1 usually has a memory load of 85%, and is running the Search Service. However WFE2 is only using about 56% of its memory usage.

I read in the file "Plan and use the Distributed Cache Service" that:

  • Do not run the following services on the same server running the Distributed Cache service: SQL Server, Project Server, Excel Services and Search services.
  • When the Distributed Cache service runs on a server together with other services and the server’s memory resources near 95% utilization, the Distributed Cache will start throttling requests. This means that the Distributed Cache service will no longer accept read or write requests until the server utilization reduces to approximately 70% utilization.

Does this mean that I can't increase the memory size used by the Distributed Cache Service on WFE1 ?

Should I run the Distributed Cache Service dedicated on WFE2? Or should I try an convince people we need an extra server for dedicated Distributed Cache?

Any help is highly appreciated. Thank you in advance for your suggestions.

È stato utile?

Soluzione

When you create a cache host, it should use 10% of the memory size. I say should, because that doesn’t happen all the time. Sometimes it uses 50% the memory, and sometimes 5%. Don’t ask why.

But you can see the configuration of the cache cluster if you run Export-CacheClusterConfig.

Use-CacheCluster
Export-CacheClusterConfig -path C:\Temp\CacheClusterConfig.xml

In the CacheClusterConfig.xml you can see the dataCache element and its property size.

<dataCache size="Small">

The size attribute may be small, medium or large according to Cluster Configuration Settings (Windows Server AppFabric Caching).

Close to the end of the file, you see the cluster hosts in the hosts element. You can change the size attribute and make sure the account attribute is correct. I’ve seen this having the wrong account more than once.

IMPORTANT! Before you import the configuration file again, you need to stop the cache cluster by running:

Stop-CacheCluster

Verify that the cluster have stopped either by Get-CacheHost or services.msc. When you know it has stopped, run:

Import-CacheClusterConfig -path C:\Temp\CacheClusterConfig.xml

Followed by

Start-CacheCluster

Again, see that the cache cluster starts by running

Get-CacheHost

My own reference: Distributed Cache Cluster Manager

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top