Uso de varios procesadores

28/01/2009 - 17:04 por Pepe | Informe spam
Sobre un servidor con dos procesadores Quad Core, y Sql 2008 Enterprise, al
lanzar un preceso que hace uso intensivo del procesador, ceo que uno de los
nucleos se pone al 100%, pero los otros 7, praticamente no se usan. Hay que
configurar, para que la carga se reparta?

Un saludo

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera (MVP)
28/01/2009 - 17:24 | Informe spam
Cuántos archivos físicos tiene la base de datos que usted más usa?

No debe usted perder de vista que aunque usted disponga de N procesadores,
al momento de escribir físicamente sobre el archivo (.mdf y .ldf) solamente
un thread puede acceder.

Configure la base de datos de uso más intensivo en N archivos físicos (N =
cantidad de procesadores) y mueva los datos a cada archivo.

En general usted verá un mejor balance en el uso de los procesadores.

Gustavo Larriera, Microsoft MVP
http://www.linkedin.com/in/gustavolarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Pepe" wrote:

Sobre un servidor con dos procesadores Quad Core, y Sql 2008 Enterprise, al
lanzar un preceso que hace uso intensivo del procesador, ceo que uno de los
nucleos se pone al 100%, pero los otros 7, praticamente no se usan. Hay que
configurar, para que la carga se reparta?

Un saludo




Respuesta Responder a este mensaje
#2 Jose Mariano Alvarez
29/01/2009 - 04:55 | Informe spam
El SQL Server puede usar perfectamente el paralelismo y los 8 nucleos de
procesamiento que tiene ese equipo con un solo archivo fisico de base de
datos y uno solo de LOG.
Para conseguir esto existe un scheduler por cada nucleo de procesamiento del
equipo.
.
Si podria existir algo de contencion en algunas paginas especiales,
especialmente en el caso de una alta concurrencia de procesos y este
fenomeno es comun en la TempDb por la alta cantidad de objetos que se crean
temporalmente y luego se destruyen y por lo tanto se recomienda en ciertos
casos aumentar la cantidad de archivos dela TempDB inclusive si estan sobre
el mismo disco fisico...

Creo que el problema debe venir por otro lado.
Por casualidad ese proceso esta usando cursores?
Han modificado la configuracion inicial del servidor?



Saludos


Ing. Jose Mariano Alvarez
SQLTotal Consulting

(Cambia los ceros por O y saca lo que sobra)

Este mensaje se proporciona tal como es, SIN GARANTIAS de ninguna clase. Por
favor tratar de indicar la versión de SQL y Service Pack. La inclusión de
(CREATE, INSERTS, etc.) para poder reproducir el problema también ayuda.










"Pepe" wrote in message
news:
Sobre un servidor con dos procesadores Quad Core, y Sql 2008 Enterprise,
al lanzar un preceso que hace uso intensivo del procesador, ceo que uno de
los nucleos se pone al 100%, pero los otros 7, praticamente no se usan.
Hay que configurar, para que la carga se reparta?

Un saludo


Respuesta Responder a este mensaje
#3 Gustavo Larriera (MVP)
29/01/2009 - 18:25 | Informe spam
Hola Mariano,

"Jose Mariano Alvarez" wrote:

El SQL Server puede usar perfectamente el paralelismo y los 8 nucleos de
procesamiento que tiene ese equipo con un solo archivo fisico de base de
datos y uno solo de LOG.



Contrariamente, Matt Stephen (SQL Product Specialist de MSFT) dice que al
momento de escribir en un archivo físico solamente un procesador puede
hacerlo por vez (cosa que también estoy seguro es así). La fuente es:

http://blogs.technet.com/mat_stephe...65325.aspx

Si tenés información documentada que diga lo contrario, por favor pegalas en
este hilo pues es un tema interesante para profundizar.

Creo que el problema debe venir por otro lado.
Por casualidad ese proceso esta usando cursores?
Han modificado la configuracion inicial del servidor?



El problema puede también venir por el AUTOGROWTH de las bases de datos. Eso
también lo explica Stephen acá:

http://blogs.technet.com/mat_stephe...65370.aspx


Saludos~
~gux
Respuesta Responder a este mensaje
#4 Gustavo Larriera (MVP)
29/01/2009 - 18:36 | Informe spam
Hablo conmigo mismo, qué locura... :-)

"Gustavo Larriera (MVP)" wrote:

Hola Mariano,

"Jose Mariano Alvarez" wrote:

> El SQL Server puede usar perfectamente el paralelismo y los 8 nucleos de
> procesamiento que tiene ese equipo con un solo archivo fisico de base de
> datos y uno solo de LOG.

Contrariamente, Matt Stephen (SQL Product Specialist de MSFT) dice que al
momento de escribir en un archivo físico solamente un procesador puede
hacerlo por vez (cosa que también estoy seguro es así). La fuente es:

http://blogs.technet.com/mat_stephe...65325.aspx

Si tenés información documentada que diga lo contrario, por favor pegalas en
este hilo pues es un tema interesante para profundizar.



Finalmente pude encontrar esto otro en el blog de los CSS SQL Server
Engineers de MSFT:

http://blogs.msdn.com/psssql/archiv...ussed.aspx

donde aclaran mejor las cosas, aunque contradicen en cierta forma a su
compañero de trabajo Matt Stephen.

Saludos
~gux
Respuesta Responder a este mensaje
#5 Jose Mariano Alvarez
29/01/2009 - 20:53 | Informe spam
Gux:

Si ese es el articulo donde aclara que el mito es falso y creo que MAT debe
estar equivocado.

En los libros "inside SQL" y en la documentacion de MS aparecen detalles
acerca de los schedulers y como pueden ser asociados a cada procesador logico
habilitado por el effinity mask y de como una simple instruccion que supera
el cost threhold for parallelism puede asignar tantos nucleos de
procesamiento como permita la opcion de configuracion MAXDOP. El tema es que
no hay garantia de que por mas que esten dadas esas condiciones realmente los
use todos, porque si alguno de los procesadores se encuentran saturado con la
cola de procesamiento con pedidos pendientes (presion sobre la CPU) es casi
seguro que no lo use en la paralelizacion de la sentencia.

Por otro lado podria suceder que la mayotia de las veces los datos esten en
memoria y por lo tanto no dependeria del archivo fisico aunque en el
direccionamiento en memoria de las paginas de la base de datos este el FileNo
como parte de la direccion de acceso. Acordate que usa hashing en el buffer
pool para encontrar la pagina en memoria.

Creo que habria que empezar a buscar los problemas por la configuracion y el
tipo de sentencias SQL que esta haciendo y luego bajar a detalle.


Gux: Por favor mandame un correo.


Saludos
Ing. Jose Mariano Alvarez
SQLTotal Consulting



Este mensaje se proporciona tal como es, SIN GARANTIAS de ninguna clase.




"Gustavo Larriera (MVP)" wrote:

Hablo conmigo mismo, qué locura... :-)

"Gustavo Larriera (MVP)" wrote:

> Hola Mariano,
>
> "Jose Mariano Alvarez" wrote:
>
> > El SQL Server puede usar perfectamente el paralelismo y los 8 nucleos de
> > procesamiento que tiene ese equipo con un solo archivo fisico de base de
> > datos y uno solo de LOG.
>
> Contrariamente, Matt Stephen (SQL Product Specialist de MSFT) dice que al
> momento de escribir en un archivo físico solamente un procesador puede
> hacerlo por vez (cosa que también estoy seguro es así). La fuente es:
>
> http://blogs.technet.com/mat_stephe...65325.aspx
>
> Si tenés información documentada que diga lo contrario, por favor pegalas en
> este hilo pues es un tema interesante para profundizar.

Finalmente pude encontrar esto otro en el blog de los CSS SQL Server
Engineers de MSFT:

http://blogs.msdn.com/psssql/archiv...ussed.aspx

donde aclaran mejor las cosas, aunque contradicen en cierta forma a su
compañero de trabajo Matt Stephen.

Saludos
~gux

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida