VMware Cloud Community
dieguitouy
Contributor
Contributor

CPU High Load on Server 2008 R2 (Esxi 5).

Hi all, i hope you are fine.

I have an ESxi host with the following specifications:

- Dell PowerEdge r720

- 1 Socket with 6 cores (12 logical processors, HT enabled)

     - Intel Xeon E5-2620 2.0 GHZ

- 300 GB SAS 15rpm x 4 (Raid10)

- 32 GB Ram

- Dell Customized ESxi 5.0

On this host i have 2 VM. One VM with Ubuntu Server 12.04.1 3 cores, 6GB ram.

The other, is a Windows Server 2008 R2 64 bits, VM Ware version 8, 16 GB ram, VMWare tools instaled, 4 vCpu (i guess is 2 physical cores (4 logical processors).

Cpu reservation 0 mhz, Cpu limit - unlimited. Same as memory...

HT Sharing: any (i change yesterday to none).

My problem is:

I have installed an SQL Express 2012, and DC on this server. The procesess when are working, example, svchost consumes an unusual percent.

For example, 25 ~ 30%

If i try to zip a file with winrar, the cpu elevates to 75 ~ 85 %.

I have anothers servers, exchange on server 2003, sql 2000 on server 2003, sharepoint on server 2003 (no one virtualized) and the normal cpu work never is more than 10 %.

There is something wrong on settings? Is normal this average on cpu?

Please i need to know if it is ok before set on production the server (now is beta :-)).

Best regards,

Diego

0 Kudos
8 Replies
elgreco81
Expert
Expert

Hi,

When dealing in a virtual enviroment, trying to see CPU performance from within the virtual machine is not the best option.

The first thing I would do in this scenario is to run esxtop to check the cpu ready% value. If this value is high, it means that the vm is waiting to have physical processing capacity to run its loads.

As you depend on HT to accomodate the processor time for your two virtual machines, I would recommend to lower a the ammount of vCPUs (yes, that could actually help you as the 2 VMs would be able to use the physical CPU at the same time...at the moment you have 7 vCPUs and only 6 cores).

Take care that you are using the right HAL for your servers and CPUs configuration (with a little bit of googling you'll find a lot of information).

VM performance is almost the same and sometimes even better than a physical machine...what is the host performance for your processor?

Regards,

elgreco81

Please remember to mark as answered this question if you think it is and to reward the persons who helped you giving them the available points accordingly. IT blog in Spanish - http://chubascos.wordpress.com
dieguitouy
Contributor
Contributor

Hi elgreco, thanks for your answer!

Here is the esxtop values (i dont understand... i can´t interpret)

esxtop.png

The performance of the VM readed from vSphere client:

performance_wsrv2008_vm.png

Device manager options:

performance_wsrv2008_taskmgr.png

Note: When i open de device manager, i was watching the taskmgr and the cpu load go up to 27% in the moment i open the device manager.

ACPI x64-based PC (this is multiprocessor...?)

Kind regards,

Diego

0 Kudos
sparrowangelste
Virtuoso
Virtuoso

in a vm if you give it too many cpus it causes problems.

scale back the cpus to 1 or 2 then grow it if you need it

--------------------- Sparrowangelstechnology : Vmware lover http://sparrowangelstechnology.blogspot.com
0 Kudos
elgreco81
Expert
Expert

Hola Diego,

Se me da mejor el castellano Smiley Happy Para mirar lo de la HAL vas a tener que mirar el driver que usa y ver a  qué corresponde con el siguiente link. No me los conozco de memoria.

http://support.microsoft.com/kb/309283

Lo que comentan de bajar el número de vCPUs  no es del todo cierto pero en tu caso puede ayudarte y te explico  porqué. Cuando una máquina virtual tiene que utilizar el/los  procesadores físicos, si tiene asignados n vCPUs, necesitará que n CPU  estén disponibles para usarse. Si en tu caso tienes dos máquinas  virtuales con esos vCPUs, pasaría lo siguiente.

1)  Máquina 1 utiliza 3 vCPUs y por tanto 3 Cores (sí se puede utilizar la  parte de los "cores adicionales que te da HT" pero no con la  configuración que tenés ahora)

2) La máquina 2 que tiene 4 vCPUs  sólo ve que hay 3 Cores disponibles (comentas que tienes un solo  procesador de 6 cores y 3 de ellos ya los está utilizando la máquina 1)

3) La máquina 2 espera hasta que hayan 4 cores disponibles para poder procesar lo que tenga que procesar

Entonces,  lo que te está pasando ahora, es que tus máquinas virtuales se van  turnando de una en una para poder trabajar. Lo primero que yo haría  sería bajar 1 vCPU de alguna de tus 2 VMs para que puedan trabajar a la  vez y aproveches al máximo tus 6 cores.

Te digo que "no  es del todo cierto" porque lo que las mejores prácticas dicen es que se  utilicen la menor cantidad de vCPUs posibles. Osea, si con 1 vCPU  tienes el rendimiento que quieres, no le metas 2. Hacer esto consume más  recursos y le suma "overhead" a la máquina virtual y al kernel del  ESXi.

La gráfica que te interesará mirar, es la de CPU  del Host, no el de las VMs...lo normal es que esté por abajo del 80% y  en tu caso con sólo 2 VMs...debería ser mucho menos (a no ser que tengan  un montón de carga esas máquinas virtuales, claro)

Los  %WAIT son bastante altos y tus %RDY me hacen pensar que no es tanto un  tema de CPU lo que se "espera" (menos de un 5% está bien en este  valor)...si tienes problemas de rendimiento puede deberse a otro factor  que no sea CPU (WAIT indica una espera...no dice a qué. Puede ser disco,  alguna tarjeta de red...mil cosas). Los %CSTP están en 0 por lo que tampoco tienes un Co-Scheduled (vamos, que no parece tema de procesador por ningún sitio)

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=101792...

http://www.yellow-bricks.com/2012/07/17/why-is-wait-so-high/

Con estos links que te paso, lo mejor que puedes hacer es comenzar a "expandir" los grupos y ver realmente dónde está el problema. Te aseguro que una vez hayas diagnosticado este, te quedarás con esxtop como una herramienta básica, muy potente y que no muchos saben (o sabemos) usar bien Smiley Happy

Saludos,

elgreco81

Please remember to mark as answered this question if you think it is and to reward the persons who helped you giving them the available points accordingly. IT blog in Spanish - http://chubascos.wordpress.com
dieguitouy
Contributor
Contributor

Hola! Gracias por tu respuesta!

En mi caso el español es mucho mejor también.

Quiero aclarar que la VM de ubuntu tiene 4 vCPU asignados, igual que la de 2008. Sumando tengo 8 vCPU. Esto no determina que se consumen 4 cores físicos?

Por otro lado, voy a probar bajar a 1 vCPU (en este caso  no estaría consumiendo 1/2 core?) No estoy muy ducho en esto, es bastante nuevo para mi.

Aguardo sus comentarios.

Buen comienzo de semana.

Diego

0 Kudos
elgreco81
Expert
Expert

Hola Diego,

Es un tema que me cuesta explicarlo y más por escrito, así que voy a intentar explicarme bien y si no dejo algo claro, pregunta Smiley Happy

Primero, la nomenclatura:

Procesador físico, se refiere al "socket" por así decirlo o circuito único integrado. Este procesador puede estar compuesto por uno o más cores que a su vez se dividen en procesadores lógicos por el hyperthreading (3 conceptos distintos).

A todo esto le sumamos el vCPU. Es vCPU porque VMware virtualiza los procesadores lógicos que le presenta a la máquina virtual. Por tanto traduce las instrucciones que van de la VM al procesador físico (no es emulación ni paravirtualización). Este proceso de "traducción", mejora drásticamente con las tecnologías de virtualización asistida de Intel o AMD (AMD-V e Intel-VT)

ESXi utiliza un "scheduler" para distribuir las cargas en los procesadores físicos. Es un proceso bastante inteligente y cada vez que leo algo al respecto, aprendo algo nuevo. ESX/ESXi pueden ubicar cargas enteras de procesamiento en un procesador lógico.

Un ejemplo, 2 procesadores físicos con dos cores e hypertreading quedaría así.

2 Procesadores físicos x 2 Cores x 2 hilos de procesamiento por Core = 8 procesadores lógicos

Qué es lo que pasa, por defecto, para una máquina con más de un vCPU, VMware distribuye sus cargas en procesadores lógicos "separados", lo cual tiene sus ventajas. (esto es toooodo un tema y aquí mientras más se conozca cómo funciona la aplicación que se virtualiza mejor, para optimizar la utilización de la caché y del bus de memoria, los nodos NUMA y alguna otra cosa que seguro me dejo en el tintero) Como te comento, VMware hace las cosas muy bien y si tiene los 8 procesadores lógicos ocupados...funciona. Si ve que va holgadito Smiley Happy o que tiene procesadores lógicos en estado "idle" lo que hará será darle al vCPU de la máquina virtual que sí está trabajando, la capacidad de utilizar la capacidad de hyperthreading del core para que vaya aún mejor.

Decir que consume 1/2 core no sería la forma en la que yo lo describiría ya que podría llevar a confusión y dar a entender que de un core de 2Ghz, consume 1Ghz cuando eso no sería así, siempre utilizará o "se reservará" los 2Ghz durante el tiempo que el scheduler se lo permita. Yo diría que consume 1 procesador lógico Smiley Happy

No entro en temas de NUMA porque no vienen mucho al caso y tampoco los domino al detalle. Pero espero que esta explicación te ayude.

Te recomiendo también seguir el blog de José María González y/o Yellow-Bricks que están muy bien. Explican las cosas de una forma que por lo menos para mi es muy fácil de asimilar.

Saludos,

elgreco81

PD: Lo de "uy" al final del nombre es por Uruguay? Te lo pregunto porque soy uruguayo y me da curiosidad Smiley Happy

Please remember to mark as answered this question if you think it is and to reward the persons who helped you giving them the available points accordingly. IT blog in Spanish - http://chubascos.wordpress.com
0 Kudos
dieguitouy
Contributor
Contributor

Hola Sebastián, gracias por tu respuesta.

Me queda un poco más claro el tema. Por lo que había leído, muchas definiciones eran correctas o se acercaban bastante a lo que yo suponía, de todas formas me queda bastante más claro el tema de los cores, sockets y procesadores lógicos.

Todavía no baje a un vCPU pero ahora me pregunto algo, en este momento estoy mirando la carga y esta en 0 casi todo el tiempo. lo que me asombra, que no se si8 es normal, que por ejemplo estoy iniciando la sesión de escritorio remoto en dicho servidor y mientras lavanta miro la performance del taskmgr y llega a niveles tales como 62% de uso del procesador. Adjunto imágenes de performance:

performance_wsrv2008_taskmgr2.png

performance_wsrv2008_vm2.png

Vas a notar los picos que te digo. Tal vez es normal... no se! pero me parece mucho por tan poco y me preocupa que se eleve cuando este en producción.

Si, soy de uruguay! Me alegro que vos también!!

0 Kudos
elgreco81
Expert
Expert

Todavía no baje a un vCPU pero ahora me pregunto algo, en este momento estoy mirando la carga y esta en 0 casi todo el tiempo. lo que me asombra, que no se si8 es normal, que por ejemplo estoy iniciando la sesión de escritorio remoto en dicho servidor y mientras lavanta miro la performance del taskmgr y llega a niveles tales como 62% de uso del procesador. Adjunto imágenes de performance:

22770_22770.pngperformance_wsrv2008_taskmgr2.png


Lo del 60 y pico por ciento tampoco lo sé...seguramente sea normal.  Tienes un entorno físico para probarlo? Estaría bien poder probar en un entorno fijo tener el taskmgr  abierto en una sesión local y desde otro equipo abrir una sesión remota  para ver si también se dispara y hasta qué porcentaje.


22771_22771.pngperformance_wsrv2008_vm2.png

Vas a notar los picos que te digo. Tal vez es normal... no se! pero me parece mucho por tan poco y me preocupa que se eleve cuando este en producción.

Ok. Mira en los recursos del host, no de la máquina virtual a ver cuánto procesador físico estás consumiendo. Seguramente no estés agotando los recursos del host por lo que en caso de problemas, se puede arreglar asignando más recursos a la máquina virtual.

En lugar de bajar a 1 los vCPUs, mejor si lo bajas a 2 para no tener que complicarte cambiando las HALs.

Si, soy de uruguay! Me alegro que vos también!!

Smiley Happy Saludos desde Reus - España, uno del cerrito que hace 7 años se fue!!!

Please remember to mark as answered this question if you think it is and to reward the persons who helped you giving them the available points accordingly. IT blog in Spanish - http://chubascos.wordpress.com
0 Kudos