¿Alguien puede ayudarme a responder lo que espero sea una pregunta realmente simple?
Supongamos que tengo una aplicación ejecutándose en una base de datos de SQL Server y estoy ejecutando pruebas de rendimiento. ¿Debo esperar un mejor rendimiento si configuro un clúster de servidores de bases de datos? ¿O eso "simplemente" me permite mejorar las características de tiempo y disponibilidad con conmutación por error, etc.?
Tiendo a pensar lo último, así que si siento que el rendimiento de la base de datos es débil, debería trabajar en el diseño de mi aplicación en lugar de comprar hardware adicional...
Saludos, Emilio
Respuesta1
Depende en gran medida de cómo esté configurado y accedido a su clúster. No ayuda que la palabra "grupo" pueda abarcar varios arreglos diferentes.
Algunos acuerdos tendrán muy poco impacto, otros ralentizarán notablemente las cosas (múltiples servidores activos, por ejemplo, cuando una transacción requiere esperar a que todos los servidores se actualicen antes de que se considere comprometida, lo que puede agregar una latencia transaccional considerable para operaciones que incluyen inserciones/actualizaciones, también la recopilación de información de bloqueo entre los servidores puede afectar las operaciones de solo lectura de manera similar) , y algunos arreglos pueden acelerar las cosas (múltiples réplicas de solo lectura para agrupar la carga de solo lectura en múltiples máquinas, lo que los requisitos de bloqueo lo permiten, por ejemplo). instancia) .
Entonces: ¡sí, no o tal vez! Si describe su disposición con cierto detalle [máquinas, SO, DBMS, configuración del clúster, qué código accede al clúster (un único servidor web, muchos servidores web, muchos clientes externos, ...), patrones de carga, ...] podría obtener una respuesta mucho mejor.
(Desafortunadamente, no es una pregunta tan simple como esperabas, ¡lo siento!)
Respuesta2
No, no verá ningún aumento en el rendimiento. La solución de agrupación en clústeres en el servidor MS SQL es solo para alta disponibilidad, no para escalamiento o equilibrio de carga.
Puede configurar ambos nodos en el clúster para que estén activos al mismo tiempo, pero luego servirán bases de datos diferentes y solo "asumirán" las bases de datos del otro nodo si falla.
Obtener más rendimiento de un servidor SQL del que puede producir un solo servidor es un problema complejo, y me arriesgaré y afirmaré que no importa cuál sea su escenario, resolverá los problemas de rendimiento de su base de datos más fácilmente con más RAM. discos más rápidos y ajustando el código de su base de datos.
Respuesta3
Tendrá que tener almacenamiento compartido (SAN/NAS) y lo más probable es que funcione mejor que los discos conectados directamente, pero un clúster no funciona mejor que una instancia independiente. Un clúster únicamente para reducir el riesgo de una falla de hardware.