locked
Recursos CPU y balanceo RRS feed

  • Pregunta

  • Buenos dias a todos,

    Mi cuestión es la siguiente, tengo 3 tipos de usuarios que se conectan contra dos repositorios de sql server 2005 de 250 GB ,vamos un entorno DSS.

    Usuario X (excel, Access)    ------->     Servidor MS Server 1 (250 GB) 32 bits 4GB RAM

    Usuario Y (reporting MS Server) -------> Servidor MS Server 2 (250 GB) 32 bits 4GB RAM
    Usuario Z (batch jobs)

    Los usuarios X son "incontrolables" ya que pueden generar productos cartesianos sobre la bd y tumbarla.

    Mi consulta es la siguiente, existe la posibilidad de controlar los recursos de maquina que puede utilizar un usuario SQL Server en la maquina que ataca (en oracle es posible a traves del resource manager), pero en SQL Server 2005 tengo entendido que no.  Creo que existe el Query Gobernor Cost Limit, que limita el tiempo de ejecución de las sql, pero eso no me sirve.

    En caso de no existir nada a nivel de base de datos sql server que controle dicha utilización de recursos. Existe algún balanceador, software que permita controlar el uso de CPU mediante agentes o lo que sea y en función de dicha medición balancear las peticiones de los usuarios de un nodo a otro, o que si el servidor del repositorio 1 fallara las siguientes peticiones se redigieran al repositorio 2.

    El Network Load Balancing NLB de Windows no me sirve ya que a priori podría colgar los dos repositorios con los usuarios X. La intención final es dirigir siempre a los usuarios X al primer repositorio y en caso solo en caso de que el servidor de los usuarios X cayera (no se podría hacer ping), esos usuarios fuerna redirigidos automaticamente en sus peticiones siguientes al repositorio 2.

    Conozco la existencia del cluster por conmutación por error, pero busco una solución que me permita balancear la carga de trabajo por usuarios y a la vez darme algo de alta disponibilidad de forma automatica.

    Estoy barajando instalar el cluster de conmutación por error bajo arquitectura de 64 bits, pero no me parece la solución más adecuada, ya que todo el tipo de usuarios atacaría el mismo repositorio y pudieran tumbarlo. Imaginaos a 200 usuarios potenciales haciendo productos cartesianos con el access...

    Saludos y gracias por cualquier tipo de ayuda


    viernes, 23 de noviembre de 2007 11:28

Respuestas

  • En SQL Server 2008 aparece Resource Governor para atajar este tipo de problemáticas. Una alternativa a al RG, válida para cualquier versión de SQL Server, muy extendida, es contar con una instancia para cuestiones de reporting o consultas adhoc. La idea de que sea un failover cluster es una posibilidad, pero eso cubre otras necesidades de alta disponibilidad, notablemente más costosas económicamente, por lo que puede que escapen del problema que se desea cubrir.

    El montaje de esa instancia de consulta puede provenir de varias formas, pero existe una que además cubre otra necesidad, que es la verificación de los backups del servidor de producción. Es la vía del log shipping (ya sea manual o automático) que deje las bases de datos en standby. También se puede montar mediante replicación, paquetes dtsx, etc. El objetivo es "sacar" los usuarios incontrolables del servidor de producción, llevándolos a otro con una copia más o menos reciente (de minutos a hora), donde estos usuarios puedan cubrir sus necesidades sin consumir recursos de forma incontrolada.


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    martes, 17 de agosto de 2010 11:24
    Moderador

Todas las respuestas

  • Hola Roberto,

     

    Te he contestado en el apartado de Windows 2003.

     

    http://forums.microsoft.com/TechNet-ES/ShowPost.aspx?PostID=2450556&SiteID=30

     

    Un saludo,

    Rafael Valcárcel Lázaro

     

    MCSE

    MCSA

    CCNA

    ITIL Service Foundation

     

     

    sábado, 24 de noviembre de 2007 2:57
  • En SQL Server 2008 aparece Resource Governor para atajar este tipo de problemáticas. Una alternativa a al RG, válida para cualquier versión de SQL Server, muy extendida, es contar con una instancia para cuestiones de reporting o consultas adhoc. La idea de que sea un failover cluster es una posibilidad, pero eso cubre otras necesidades de alta disponibilidad, notablemente más costosas económicamente, por lo que puede que escapen del problema que se desea cubrir.

    El montaje de esa instancia de consulta puede provenir de varias formas, pero existe una que además cubre otra necesidad, que es la verificación de los backups del servidor de producción. Es la vía del log shipping (ya sea manual o automático) que deje las bases de datos en standby. También se puede montar mediante replicación, paquetes dtsx, etc. El objetivo es "sacar" los usuarios incontrolables del servidor de producción, llevándolos a otro con una copia más o menos reciente (de minutos a hora), donde estos usuarios puedan cubrir sus necesidades sin consumir recursos de forma incontrolada.


    Alberto López Grande (Visita mi blog en http://qwalgrande.blogspot.es/)
    martes, 17 de agosto de 2010 11:24
    Moderador