Blog >

Balancear memoria entre instancias de SQL Server


Dentro de la lista de ideas pendientes de implementar que tiene uno siempre en la cabeza en forma de post-it, había una que estaba de las primeras y que consistía en establecer la memoria correctamente en un entorno donde convivan varias instancias de SQL Server clusterizadas.

Es decir, es muy común tener un entorno de dos (o más, pero por simplificar el escenario) máquinas físicas clusterizadas y sobre ellas instalar dos instancias clusterizadas (nuevamente, simplificando), alternando el nodo principal para optimizar recursos. Es decir, algo como muestra este dibujo:

En este escenario se puede tomar varios caminos respecto a la configuración de la memoria máxima de las instancias de SQL Server:

  • Dejarla tal cual como viene de origen (mala práctica se mire como se mire)
  • Poner un valor máximo como si sólo existiera una instancia instalada (no recomendable cuando las dos instancias pasan a ser ejecutadas en una sola máquina
  • Poner un valor máximo previendo que se puedan ejecutar las dos instancias en la misma máquina (tampoco recomendable porque estaríamos desperdiciando un recurso tan valioso como la memoria)

Lo ideal es tratar de aprovechar al máximo la memoria disponible, pero teniendo siempre en cuenta que en cualquier momento es posible que esas instancias estén corriendo en el mismo nodo.

Bueno, pues en el blog del equipo de PFE de SQL Server, han publicado un artículo que muestra cómo balancear esa memoria entre instancias para conseguir el objetivo comentado en el párrafo anterior: “Use PowerShell Script via startup Agent Job to balance Memory between two instances on a cluster on a Failover”

La idea es sencilla: usar la posibilidad de lanzar un trabajo cuando se inicia el servicio de SQL Server para establecer mediante un script de PowerShell la memoria máxima de las instancias que se estén ejecutando en esa máquina. El algoritmo de balanceo que se usa en dicho artículo es muy simple, en un entorno real es probable que puedan existir más instancias o servicios que tener en cuenta, o asignar un peso diferente a cada una de esas instancias; en cualquier caso, eso ya será cuestión de adaptarlo a nuestro escenario.

Espero que os sea útil

Suscríbete a nuestra newsletter para enterarte de las novedades más Geek

Newsletter Banner
RGPD

Contenido Relacionado