SharePoint 2010 usando demasiada memoria y esta virtualizado usando VMWare?

Tu instalación de SharePoint esta casi al 100% de memoria y no sabes por qué…

Is SharePoint using almost all or a lot of memory and dont know why? chances are that you’re using VMWare if your SharePoint has been vistualized…

Revisión de contadores de Performance

Revisando el siguiente artículo de contadores de performance: https://technet.microsoft.com/en-us/library/ff758658(v=office.14).aspx 

En ese articulo, tenemos los siguiente:

Memory

- Available Mbytes This shows the amount of physical memory available for allocation. Insufficient memory will lead to excessive use of the page file and an increase in the number of page faults per second
- Cache Faults/sec The effective use of the cache for read and write operations can have a significant effect on server performance. You must monitor for increased cache failures, indicated by a reduction in the Async Fast Reads/sec or Read Aheads/sec.
- Pages/sec This counter shows the rate at which pages are read from or written to disk to resolve hard page faults. If this rises, it indicates system-wide performance problems.

Si hacemos pruebas de estrés...los resultados deberían de dar:

Physical Bottleneck Resolution - Removing Bottlenecks

Memory

Objects & Counters

Problem

Resolution Option

Available Mbytes Less than 2GB on a Web server. Add Memory
Cache Faults/sec Greater than 1

Add memory

Increase cache speed or size if possible

Move data to an alternative disk or server

Pages/sec Greater than 10 Add memory

Haciendo pruebas de estrés entonces con un cliente, el valor de Cache Faults/sec se incrementó hasta un valor de 12, 783.

El monitoreo se realizó con la herramienta con Performance Monitor. Los contadores recomendados a incluir en la plantilla están en la página siguiente: technet.microsoft.com/.../ff758658(v=office.14).aspx
Por otro lado para estimar la capacidad de los servidores Front End, puede utilizarse el objeto ASP.NET y el contador Request Execution Time. Por ejemplo, si cada servidor Front End tarda 17 ms en atender una petición, entonces el tiempo de respuesta promedio será de 59 peticiones por segundo o 211 mil por hora (múltiplicado por el número de Front Ends). Este valor nos permitió confirmar que la granja podría cubrir el requerimiento de al menos 500 mil peticiones por hora.

Este comportamiento del contador de Cache Faults/sec es un efecto directo del manejo de mejoría, lo cual lleva a preguntarnos la configuración actual de los servidores ESX de VMWare donde se encuentran actualmente instalas las máquinas virtuales de SharePoint

Ahora, por default los servidores ESX pueden hacer uso de lo que se le conoce como Ballooning Memory lo cual consiste en que las Máquinas Virtuales  pueden ceder memoria RAM al host (ESX) donde residen, para que este a su vez pueda tomar la decisión de asignar esta memoria RAM "disponible" a alguna otra máquina virtual que lo requiera. NOTA: Esto ocurre cuando el Host (ESX) que hospeda las máquinas virtuales llega al MÁXIMO USO de memoria RAM.

Y da la casualidad que esta "capacidad que puede manejar VMWare no es recomendable para Máquinas Virtuales que tengan instalado SharePoint, o en otras palabras puede afectar el performance"

Podemos confurmar esta indicación desde este PDF disponible en Internet y publicado por VMWare,: The Role of Memory in VMware ESX Server 3. En este PDF se explica el concepto de ballooning Memory, y si leemos el último párrafo de la página 8, podemos leer lo siguiente (aunque este artículo es para SharePoint 2007, aplica para otras versiones de SharePoint, como 2010, si es su caso, inténtenlo y verán):

"...any memory reclamation through ballooning or swapping from this VM significantly degraded the SharePoint performance."

Otro dato interesante que se puede leer en la siguiente página: "The NUMA-aware resources manegement architecture improves throughput by 8% in the SharePoint VMs case when compared with the case where the NUMA-aware optimization is disabled.

En la página 10 de este mismo artículo (mencionado en unos párrafos arriba) tenemos la sección de mejores prácticas para implementaciones de SharePoint usando virtualización con VMWare. como por ejemplo habilitando NUMA para los procesadores compatibles con dicha arquitectura.

Créditos: Este artículo fue posible p7or la información recabada y compartida por las siguientes personas, mis compañeros y amigos Osvaldo Robles de Consultoría de Microsoft, Jahil Álvarez Technical Account Manager de Microsoft, y Victor Manuel Campos Toledo de Consultoría de Microsoft también.

Saludos!