VMware Global Community
l_fernandez
Contributor
Contributor

Virtualizar SQL Server

Hola:

A ver si alguien con experiencia me puede iluminar.

Se está planteando en un cliente la virtualización de sus servidores... se le ha vendido lo de HA, DRS etc... y le ha gustado mucho. Pregunta si se podría poner SQL Server también en virtual, porque ahora tiene un cluster y le "duele" ver una máquina totalmente desaprovechada. La cosa es como sigue:

Actualemente tiene un (bueno 2, uno en espera) proliant DL380 G3 con 2 procesadores a 3 Ghz y con hyperthreading. El uso de CPU está entre 50 -60 % (con picos más altos). tien 4 GB de RAM

Se virtualizaría (con ESX 3.5) sobre 2 DL380G5 con 2 procesadores quadcore a 2'5 Ghz con 8 GB de RAM... En principio el tema sería hacer al servidor SQL virtual el "amo de la barraca", con 4 procesadores y 6 GB de RAM (el resto de máquinas virtuales no tienen grandes requisitos)...

Mis dudas son: ¿Así conseguría más rendimiento que con la actual máquina física?... y una confirmación: no puedo dedicar más de 4 procesadores (es decir la mitad de mi capacidad de cálculo) a esta máquina virtual , no?

si alguien ha hecho alguna comparativa de rendimineto que se me ajuste o sabe donde podría encontrarla... o me puede aconsejar según su experiencia... se lo agradecería.

SAludos.

0 Kudos
10 Replies
Iberia_VMware_U
Contributor
Contributor

Efectivamente no puedes pasarle más de 4 procesadores a la máquina virtual. Mas que la CPU, lo importante es la memoria y el tipo de almacenamiento (los discos SAS mejor que FATA y fibra mejor que SCSI).

Yo tengo un SQL 2000 y un 2005 virtualizados sobre FATA y los usuarios no notan diferencia respecto al SCSI. También es cierto que mis BBDD son pequeñas y no tienen muchos usuarios concurrentes por lo que las transacciones y operaciones de lectura/escritura son pocas. Me han hablado de gente que ha virtualizado servidores Exchange en equipos con 4 procesadores físicos (los servidores Exchange tienen fama de necesitar muchos recursos).

A priori y sobre el papel debería notarse un mejor rendimiento siempre que el almacenamiento sea igual o superior al antiguo porque el servidor va a tener más CPU y más RAM por lo que lo único que le puede afectar al rendimiento es el disco. Podías probar a pasarle el Iometer u otra utilidad para ver el rendimiento de los discos actuales y del almacenamiento de los ESX y comparar.

Espero haberte sido de ayuda.

0 Kudos
l_fernandez
Contributor
Contributor

Hola:

Gracias por la contestación...

No termino de ver por qué dices que la CPU no es importante... Si me está "chupando" alrededor del 60% de CPU en una máquina física con 2 procesadores con hyperthreading... Para mi mi mayor duda es si puedo esperar mejor rendimiento de CPU en una máquina virtual a la que le he dedicado 4 cores de 2 procesadores multicore (quadcores, concretamente) que en una máquina física de 2 procesadores con hyperthreading con fecuencias similares.

Respecto al almacenamiento si que va a mejorar (paso de una cabina SCSI con discos SCSI - una MSA500 de HP a una cabina de fibra con discos SAS - una HP MSA200fc).

Gracias y saludos.

0 Kudos
josep_ros
Enthusiast
Enthusiast

Muy buenas,

Por si te pudiese ser de utilidad yo utilizo una ecuación para saber el antes y el después de los procesos P2V que me suele dar muy buen resultado. Tienes la información completa aquí:

http://josepros.blogspot.com/2007/06/ecuacin-de-clculo-de-uso-en-el-proceso.html

Por otra parte, si no tienes mucha I/O puedes encapsular la BD en un VMDK. Si tienes dudas o crees que eso va a limitarte puedes atacar directamente a la BD mediante RDM, eso ya según tu veas. Si quieres primero lo dejas en RDM y luego lo cambias a VMDK y comparas rendimiento.

Es importante el número de usuarios que atacan concurrentemente la BD. Sin que sirva de precedente pero como referencia, si son más de 100 yo lo dejaría en RDM, si son menos puedes ponerlo en VMDK.

Saludos,

Josep

http://josepros.blogspot.com
Iberia_VMware_U
Contributor
Contributor

No me malinterpretes lo de la CPU. Claro que es importante pero teniendo en cuenta que las CPU´s son más potentes y que puedes jugar más con la configuración de los procesadores le di menos importancia porque si no tienes suficiente RAM y el disco es lento no puedes hacer mucho. Recuerda que, de los cuatro procesadores, puedes especificar que sean de uso exclusivo para esa máquina virtual y no se utilice por las demás o especificar la cantidad de Mhz reservados para esa máquina.

0 Kudos
l_fernandez
Contributor
Contributor

Hola:

Segun me dice Josep (Por cierto: me encanta tu blog) existe una ecuación... que viene a decir que se sumen los megaherzios disponibles antes y se comparen con los disponibles después... y ahí es donde empiezan mis problemas: 2 procesadores a 3 GHZ con hyperthreading ¿cuanto es? ¿3.000x2=6.000, 3000x4=12.000, 3000x2 + 20% de rendimeinto adicional por hyperthreading= 7.200? y en la máquina destino... ¿Cuantos megaherzios tengo: en principio 2.500 x 4 x 2= 20.000 .. pero como sólo puedo presentar 4 de los 8 cores a la máquina virtual... realmente tendría 2.500 x 4=10.000?

Y respecto a "Iberia" (muchas gracias también): memoria y demás puedo poner la que necesite... pero veo que me resulta imposible ponerle más de esos 10.000 megaherzios a la máquina virtual y es lo que me precopupa porque si una máquina físca está justita de procesador, me meto en el lío de virtualizar (pastón mediante, claro) y al final les digo que siguen teniendo problemas de rendimiento por falta de CPU... me cubro de gloria, Si me he quedado corto de memoria... pongo más y punto. El almacenamiento lo voy a mejorar respecto a la máquina actual y entre ponerlo en RAW o en VMDK... es cuestion de comparar como dice Josep... Mi miedo es quedarme corto de CPU, que es lo que no veo manera de ampliar en caso de necesidad.

Muchas gracias a los 2 por vuestras respuestas... me están sirviendo de ayuda, de verdad.

0 Kudos
UNED
Enthusiast
Enthusiast

Yo en tu lugar olvidaría el HT a la hora de hacer los calculos. Si la máquina tiene un uso elevado de procesador puede, incluso, empeorar el rendimiento real sobre no tenerlo activo (nosotros lo tenemos desactivado en algunas máquinas por ese motivo).

Por otro lado, esos consumos altos de CPU que comentas en los primeros mensajes pueden deberse a I/O Wait de lecturas en disco y/o en memoria, con lo que una memoria y un disco más rápidos bajarían esos tiempos y, por tanto, la carga sobre la CPU. Aparte que en cualquier base de datos, tira más la memoria disponible que la CPU.

Aparte, si la pones en virtual, es recomendable que sólo utilice 2 cores de cada cpu fisica, en lugar de los 4 de una.

Por otro lado:

Si lo que realmente quieres es subidon de rendimiento, vete a la arquitectura IA64, que no son virtualizables, pero la deferencia de rendimiento es brutal con respecto a las x86-x64 (al menos en oracle).

Saludos, Chema.

admin
Immortal
Immortal

Yo la CPU la veo bien, pero la RAM le añadiria mas, en ESX cuando más RAM mejor toda la que puedas ponerle le vendrá genial.

Salu2

0 Kudos
l_fernandez
Contributor
Contributor

Haciendo un repaso de todo lo que me habis dicho entiendo que...

En principio si que puedo suponer que me va a ir más rápido en las nuevas condiciones que en las actuales (+ memoria y mejor acceso a disco...y la CPU también mejora) aunque no tanto como si no la virtualizara, claro.

Para potenciar el rendimiento me aconsejais el disco en modo RDM, y que active la afinidad con 2 cores de cada procesador (entiendo que además debería evitar el 1º para no chocar con el propio ESX). Esta 2ª configuración me impediría hacer vmotions, ¿no?.

En fin, muchas gracias a todos, y que Dios me coja confesado.

0 Kudos
jorge_alsys
Contributor
Contributor

muy buenas:

respecto a tus dudas de CPU, tu al servidor virtual le puedes montar 4 nucleo virtuales, pero estos 4 nucleos virtuales, si configuras CPU AFINNITY a la VM, haran uso de todos los núcleos que posee el servidor ESX. a mas demanda, mas CPU, pero no mas nucleos.

Espero que te haya ayudado,

Jorge

0 Kudos
l_fernandez
Contributor
Contributor

Buenos días,

Estaré fuera de la oficina hasta el próximo 14 de Julio. Si lo desea, puede transmitir su consulta a nuestro servicio de mantenimiento, a través de los siguientes medios:

. E-mail: sistemas@es.grupoi68.com

. Teléfono: 943 31 14 55

. Fax: 943 21 88 66

Un cordial saludo,

Luis Fernández

Consultor

Dpto. Sistemas

0 Kudos