none
EXEC sp_configure 'max degree of parallelism', 2; RRS feed

  • Pregunta

  • Tengo aparentemente un problema de paralelismo en un SS2005.

    Al ejecutar:

    EXEC sp_configure 'max degree of parallelism', 2;

    Entiendo que le indico al servidor que uso 2 procesadores ? estaba seteado en 10.

    En el managemenet donde puedo mirar esta configuracion ?

    Saludos.


    DBA SQL Server Santiago/Chile

    lunes, 11 de mayo de 2015 17:56

Respuestas

  • Por favor no uses eso, esto es para 2005, primero que nada los sistemas en 2005 no estaban bien optimizados para HyperThreading (esto empezo en 2008-2009)

    En segundo lugar no esta tomando en cuenta los nodos NUMA ya que no eran comunes en aquella epoca, segundo algunas cuestiones como servidores de Dynamics o Sharepoint tienen configuraciones especificas.

    martes, 12 de mayo de 2015 13:43

Todas las respuestas

  • EXEC sp_configure 'max degree of parallelism', 2;

    Entiendo que le indico al servidor que uso 2 procesadores ?

    No, eso no es exacto del todo. Lo que haces es limitar cada consulta a que se paralelice en dos procesadores. Pero si se le envían simultáneamente dos consultas, podrían usar cuatro procesadores (dos cada una).

    Para limitarle de verdad el número de procesadores que puede usar SQL Server, se utiliza el "processor affinity". Es una opción disponible en la pestaña Processors de las Propiedades del servidor en SSMS.

    lunes, 11 de mayo de 2015 18:00
  • Processor affinity es algo altamente avanzado y que no debe ser cambiado sin un buen entendimiento de esto Alberto no creo que sera la mejor recomendación mover esto.

    Paralelismo siempre sera un wait alto y no necesariamente todo debe de ir en parallelo, para eso esto el max threashold of parallelism.

    lunes, 11 de mayo de 2015 18:08
  • Ojo, que yo no he dicho que recomiende hacerlo (de hecho estoy de acuerdo contigo en que normalmente no debe tocarse). Simplemente he clarificado que la opción seleccionada por el OP no hace lo que el cree que hace, porque eso se hace de otra manera. Pero el aclarar que algo se hace de cierta manera no implica recomendar que se haga.

    lunes, 11 de mayo de 2015 18:17
  • CMAPM,

    Buenas tardes, como estas? Sumando un poco a las respuestas que te dieron antes..... el parametro max dop ,generalmente, se setea con la cantidad de procesadores que tiene la instancia con un maximo de 8 (tengo una qry que si queres te la paso que determina cuanto deberia tener ese valor....) igual este valor hay que medirlo.... no siempre sigue ese estandar, lo que te comento enrique el cost threashold for parallelism sirve para que el motor paralelice en base a costo.... el default es 5 pero tenes que ir variando en base a los costos de tus consultas en la instancia, puede ser 30 50 depende el uso que le den a la instancia.

    Respondiendo a tu consulta podes ver la informacion presionando boton derecho en tu instancia - properties - advanced, luego en el ultimo recuadro vas a ver que se encuentra  parallelism (ahi vas a encontrar la info de MAXDOP y cost threshold for parallelism)

    Espero te sirva!

    saludos!

    lunes, 11 de mayo de 2015 19:28
  • Hola, muchas gracias por responder.

    - Processor afinity no lo he tocado.

    - maxdegree lo toque un poco pues estoy teniendo algunas dificultades de tiempo de respuesta de algunas querys.

    Gonzalo, agradecería me puedas pasar la query para ir probando, pues estaba en 10 la cambie a 2, tengo 2 procesadores quad core virtuales. 


    DBA SQL Server Santiago/Chile

    martes, 12 de mayo de 2015 3:04
  • Graciosamente nunca he visto un query que haga eso pero debe de haber, ya que no es una ciencia exacta es mucho de tentar las aguas.

    Te recomiendo lo de Paul Randall al respecto.

    Y bueno esta es mi opinion

    http://sqlservertoolbox.blogspot.mx/2015/02/paralelismo-en-sql-server.html

    martes, 12 de mayo de 2015 3:40
  • CMAPM,

    Te adjunto el link de donde la saque:

    http://blogs.msdn.com/b/sqltips/archive/2005/09/14/466387.aspx

    Espero te sirva!

    saludos!!


    martes, 12 de mayo de 2015 13:36
  • Por favor no uses eso, esto es para 2005, primero que nada los sistemas en 2005 no estaban bien optimizados para HyperThreading (esto empezo en 2008-2009)

    En segundo lugar no esta tomando en cuenta los nodos NUMA ya que no eran comunes en aquella epoca, segundo algunas cuestiones como servidores de Dynamics o Sharepoint tienen configuraciones especificas.

    martes, 12 de mayo de 2015 13:43
  • Enrique,

    Segun CMAPM la version que esta manejando es la 2005 por eso le adjunte el link.

    Esperemos que responda a ver si le sirvio,

    si no que recomendarias vos??

    saludos!!

    martes, 12 de mayo de 2015 13:57
  • Eso no importa lo que importa es la maquina física, la mala implementacion de hyperthreading es por parte de INTEL en maquinas más viejas de 2008. Lo cual esta tomando el query de hecho si ves los mismos comentarios hacen referencia a que el query no es muy bueno.
    martes, 12 de mayo de 2015 13:59
  • El SS2005 es virtual con VMWare. deberia pensar en migrar a SS2008 ? por el hyperthreading ?

    Nota. No lo hemos echo aun por un tema de tiempo para pruebas por parte de desarrollo.


    DBA SQL Server Santiago/Chile

    martes, 12 de mayo de 2015 19:49
  • Eso no es importante y depende de la maquina física no de la virtual.
    martes, 12 de mayo de 2015 20:05
  • CMAPM,

    como estas??? a ver si te puedo ayudar... como sabes que tenes problemas de paralelismo(ya que arriba mencionas que aparentemente es este problema)? mediste el cx_packet o los waits en tu instancia?? tenes qrys que llevan mucho tiempo?? ya que empezamos con la idea de modificar parametros.. despues migrar la arquitectura y son cambios muy grandes para hacer..... yo por mi lado arrancaria por medir la instancia.. q tipo de waits tenes para que el troubleshooting sea lo menos invasivo y lo mas acertado posible...

    Simplemente es mi opinion y espero que te sirva!!

    saludos!!

    miércoles, 13 de mayo de 2015 12:13
  • Hola.

    Si entendí bien, estás revisando estos parámetros de configuración porque tienes problemas con algunas sentencias T-SQL. Si es así, ¿ya revisaste dichas consultas? Por ejemplo, ¿Qué te indican los planes de ejecución de éstas?

    Es solo para validar y de paso descartar, si es un tema de configuración de parámetros del motor o si se puede hacer algo a nivel de consultas...

    Saludos,


    Guillermo Taylor F.
    IT Pro & Xbox gamer
    My blog

    miércoles, 13 de mayo de 2015 13:13