Estaba haciendo algunos puntos de referencia manuales simples en nuestro servidor de base de datos (en vivo) durante las horas no pico, y noté que las consultas arrojaron resultados de referencia algo erráticos .
Había habilitado el plan de ahorro de energía "equilibrado" en todos nuestros servidores hace un tiempo, porque pensé que no estaban cerca de la alta utilización y de esta manera podríamos ahorrar algo de energía.
Asumí que esto no tendría un impacto significativo y medible en el rendimiento. Sin embargo, si las características de ahorro de energía de la CPU están afectando el rendimiento típico , particularmente en el servidor de bases de datos compartidas, ¡entonces no estoy seguro de que valga la pena!
Me sorprendió un poco que nuestro nivel web, incluso con una carga del 35-40%, se reduzca de 2.8 Ghz @ 1.25V a 2.0 Ghz @ 1.15V.
Espero por completo que el reloj de bajada ahorre energía, pero ese nivel de carga me parece lo suficientemente alto como para que esté acelerando a la velocidad máxima del reloj.
Nuestro servidor de base de datos de 8 cpu tiene una tonelada de tráfico, pero una utilización de CPU extremadamente baja (solo debido a la naturaleza de nuestras consultas SQL, muchas de ellas, pero consultas realmente simples). Por lo general, se sienta al 10% o menos. Así que espero que haya sido descargado incluso más que la captura de pantalla anterior. De todos modos, cuando cambié la administración de energía a "alto rendimiento", vi que mi punto de referencia de consulta SQL simple mejoraba en aproximadamente un 20% y se volvía muy consistente de una ejecución a otra .
Supongo que estaba pensando que la administración de energía en servidores con poca carga fue beneficiosa para todos: no hubo pérdida de rendimiento y un importante ahorro de energía porque la CPU es comúnmente el consumidor de energía # 1 o # 2 en la mayoría de los servidores. Ese no parece ser el caso; renunciará a cierto rendimiento con la administración de energía de la CPU habilitada, a menos que su servidor esté siempre bajo tanta carga que la administración de energía se haya apagado de manera efectiva. Este resultado me sorprendió.
¿Alguien tiene alguna otra experiencia o recomendaciones para compartir sobre la administración de energía de la CPU para servidores? ¿Es algo que enciende o apaga en sus servidores? ¿Has medido mucha energía estás ahorrando? ¿Lo has comparado con él de vez en cuando?
fuente
Respuestas:
No estoy seguro acerca de los servidores, pero el pensamiento actual en los dispositivos integrados no es molestarse con los pasos entre baja potencia y agotamiento porque el tiempo adicional involucrado consumirá sus ahorros de energía, por lo que básicamente funcionan con poca energía hasta que obtienen cantidad real de carga de la CPU en cuyo punto se voltean lo más rápido posible para que puedan terminar el trabajo y volver al ralentí a baja potencia.
fuente
Siempre he desactivado cualquier tipo de administración de energía en los servidores. Tengo curiosidad por lo que otros han experimentado, pero siempre supuse que si el servidor no funciona bien, siempre habrá algún retraso para 'intensificar' la CPU al 100%, y en un centro de datos que establezca cualquier retraso como este Es inaceptable.
Los datos que proporcionó parecen respaldar esta suposición. Por lo tanto, no he realizado ninguna prueba específica, pero parece que no debería usar ninguna tecnología de ahorro de energía dentro de Windows o el BIOS. Incluso apago la configuración de 'apagar la red' y la tarjeta PCI para ser ultra conservadora.
fuente
La cantidad de energía será en realidad esto Guarde usted :
Si usted decide que esta característica podría poner a la estabilidad de los servidores en riesgo (no tengo la experiencia con esto), entonces es posible que buscar otro sitio para el ahorro de energía.
Trataría de averiguar cuánta energía podría ahorrar esto para la cantidad de servidores que tiene (aunque quizás ya lo haya hecho). Dado que el gráfico que publicó en su respuesta es porcentajes, para su empresa, los ahorros podrían ser muy poca potencia real. Si no tiene muchos servidores, puede que en realidad no sea tanto, y obtener luces activadas por movimiento o algo así en su oficina puede ahorrar más energía (aunque eso no es tan comercializable).
Recuerdo haber leído hace unos años acerca de una de las principales compañías automotrices estadounidenses (olvídate) de tener presión para cambiar las emisiones de los gases de escape de sus automóviles. En cambio, la compañía demostró que si limitara algunas de sus fábricas, eso sería mucho más barato para ellos, además de generar un ahorro de emisiones mucho mayor.
No olvide los discos:
Además, es posible que desee verificar que estas funciones de ahorro de energía no reduzcan los discos si no se utilizan. Tal vez por un momento todos los resultados de la consulta SQL estarían en RAM, el disco se usaría y se iría a dormir (aunque no estoy seguro si funciona así). Si esto puede suceder, habría una gran penalización de rendimiento mientras todo gira de nuevo.
fuente
Prefacio: Estoy dando algunos saltos / generalizaciones sobre Intel Xeons y su rendimiento de ahorro de energía con SpeedStep. Al leer acerca de las CPU Intel Xeon " Yorkfield " de 45 nm, la tecnología Intel SpeedStep mejorada (EIST) y el estado de detención mejorado (C1E) parecen ser el verdadero culpable de la situación. Estoy de acuerdo con su declaración al creer que activar tales funciones de administración de energía ayudaría a la conservación de la energía, pero cuando las CPU necesitaban la energía bajo carga, el sistema volvería a una configuración de velocidad de reloj de voltaje normal. Parece que EIST y C1E tienen algunos efectos secundarios que no están implícitamente intuitivos cuando se usa una u otra opción en el BIOS. Después de rastrear a través de numerosos sitios web de overclocking, parece que estas dos configuraciones en el BIOS causan bastante frustración.
De http://www.overclock.net/intel-cpus/376099-speedstep-guide-why-does-my-processor.html :
Mientras se ajusta la configuración de rendimiento de "alto rendimiento" es probablemente la mejor configuración para un servidor de base de datos, estoy bastante seguro ya sea DIA y / o C1E hizo que los CPU a bajo realizar a pesar de que deben tener de vuelta se ha ido a la configuración normal cuando la carga aumentó sustancialmente. La gran advertencia para mí parece ser "¿qué es una carga sustancial?" De acuerdo con el sitio overclockers.net, afirman que EIST utiliza esas configuraciones de "esquemas de energía" para manipular la configuración de su CPU. Pero no hay indicación del porcentaje de carga o de cuánto tiempo para saber cuándo volver las CPU a voltaje normal.
Nuevamente, de ninguna manera soy un experto en el tema de las CPU de Intel, pero apostaría a que ajustar estas dos configuraciones podría brindarle el ahorro de energía que desea y el rendimiento que debería obtener, pero apegarse a la configuración de "rendimiento máximo" es igual de efectivo sin la necesidad de reiniciar.
fuente
La respuesta rápida es: por supuesto, el ahorro de energía afectará el rendimiento.
La respuesta más larga no es divertida. Básicamente, pruebe una configuración, pruebe el rendimiento y decida con qué puede vivir.
Las aplicaciones y los sistemas son tan complicados que no hay una respuesta corta y seca aquí, aparte de "sí, el tiempo de reacción y otras velocidades del sistema se verán afectadas". Si es mucho más lento que el disco duro o la red, bueno, se entiende la idea. Prueba en realidad.
fuente
Siempre trato de VM tantos servidores como puedo, pero cuando tengo que 'desnudar' un servidor es generalmente lo que necesito o quiero un rendimiento totalmente consistente. Entonces, para estas máquinas críticas para el negocio, NUNCA enciendo nada relacionado con el ahorro de energía, exactamente por las razones que está experimentando.
*** bang-goes-my-green-credentials *
fuente
Unas pocas cosas:
Compruebe el BIOS para asegurarse de que la administración de energía esté bajo el control del sistema operativo. Podría ser posible que esté configurado para ser administrado por el firmware y, por lo tanto, utilizando una administración de energía de procesador tonta y no óptima.
Verifique si hay alguna revisión relacionada con la administración de energía que pueda faltar. Hubo bastantes notables en el día en que salió Vista / Server 2008.
Verifique la configuración detallada de Equilibrado. Es posible que otra característica de ahorro de energía esté causando un rendimiento reducido. En teoría, el impacto de rendimiento de EIST debería ser insignificante, aunque, de nuevo, una base de datos SQL tiene una huella única, y es concebible que se vea afectada de manera desproporcionada por la administración de energía del procesador.
fuente
Alguna información de Microsoft (formato Word Doc, desafortunadamente)
Mejore la eficiencia energética y administre el consumo de energía con Windows Server 2008 R2
Estas características particulares de ahorro de energía de CPU a nivel de hardware son las mismas en cualquier sistema operativo, por supuesto, solo se trata de si las enciende o no.
El gráfico de ahorro de energía de la administración de energía sin CPU, versus la administración de energía de la CPU:
Tenemos claro que (y este gráfico muestra que) a altos niveles de utilización, la administración de energía de la CPU se apaga automáticamente. Sin embargo, lo que no tengo claro es si a niveles de utilización bajos hay un impacto en el rendimiento general del servidor, por ejemplo, el tiempo de respuesta en consultas simples de SQL Server.
fuente
Nunca debe recurrir a la configuración de Windows o al Bios Speedstep que viene en los procesadores Intel y también hay un equivalente de AMD. Esto puede causar problemas, y he visto problemas en los que, con Speedstep, el reloj de la CPU seguía rebotando de forma errática a pesar de que el uso de los recursos de la CPU era constante.
Si quieres ser más verde y ahorrar energía, utilizar procesadores de bajo consumo, designados con el carácter L antes de que el nombre del modelo, como la L serie 54XX y L 55xx serie de Intel.
EDITAR: Lo siento si di la impresión de que esta característica siempre fallará, simplemente me quemé, y en un sistema de misión crítica no puedo hacer que ocurra este tipo de cosas, así que solo trato de quedarme lejos de eso.
fuente
Cuando se habla del rendimiento en un servidor, hay algunas formas diferentes de verlo. Existe el tiempo de respuesta aparente (similar a la latencia de la red) y el rendimiento (similar al ancho de banda de la red).
Algunas versiones de Windows Server se entregan con la configuración de Energía equilibrada habilitada de manera predeterminada. Como Jeff señaló. Windows 2008 R2 es uno de ellos. En la actualidad, muy pocas CPU son de un solo núcleo, por lo que esta explicación se aplica a casi todos los servidores de Windows con los que se encontrará, a excepción de las máquinas virtuales de un solo núcleo. (Más sobre eso más adelante).
Cuando el plan de energía equilibrado está activo, la CPU intenta reducir la cantidad de energía que está utilizando. La forma en que lo hace es deshabilitando la mitad de los núcleos de CPU en un proceso conocido como "estacionamiento". Solo la mitad de las CPU estarán disponibles a la vez, por lo que consume menos energía en momentos de poco tráfico. Esto no es un problema en sí mismo.
Lo que ES un problema es el hecho de que cuando las CPU no están estacionadas, ha duplicado los ciclos de CPU disponibles disponibles para el sistema y de repente desequilibró la carga en el sistema, pasando de (por ejemplo) una utilización del 70% al 35%. El sistema analiza eso y después de que se procesa la ráfaga de tráfico, piensa "Oye, debería volver a marcar esto un poco para ahorrar energía". Y así es.
Aquí está la parte mala. Para evitar una distribución desigual del calor y la energía dentro de los núcleos de la CPU, tiene la tendencia a estacionar las CPU que no se han estacionado recientemente. Y para que eso funcione correctamente, la CPU necesita vaciar todo, desde los registros de la CPU (caché L1, L2 y L3) a otra ubicación (probablemente memoria principal).
Como ejemplo hipotético, supongamos que tiene una CPU de 8 núcleos con C1-C8.
Cuando esto sucede, todos se activan por un período de tiempo y luego el sistema los estaciona de la siguiente manera:
Pero al hacerlo, hay una buena cantidad de sobrecarga asociada con el vaciado de todos los datos de la memoria caché L1-L3 para que esto suceda de manera que no ocurran errores extraños en los programas que fueron vaciados de la tubería de la CPU.
Probablemente haya un nombre oficial para él, pero me gusta explicarlo como un golpe de CPU. Básicamente, los procesadores pasan más tiempo haciendo trabajo ocupado moviendo datos internamente de lo que están procesando solicitudes de trabajo.
Si tiene algún tipo de aplicación que necesita baja latencia para sus solicitudes, debe deshabilitar la configuración de Energía equilibrada. Si no está seguro de si esto es un problema, haga lo siguiente:
Si ve que alguno de ellos está estacionado, notará que la mitad de ellos están estacionados en un momento dado, todos se encenderán y luego la otra mitad se estacionará. Alterna de ida y vuelta. Por lo tanto, las CPU del sistema están agitándose.
Máquinas virtuales: este problema es aún peor cuando está ejecutando una máquina virtual porque hay una sobrecarga adicional del hipervisor. En términos generales, para que se ejecute una VM, el hardware debe tener un espacio de tiempo disponible para cada uno de los núcleos en cada segmento de tiempo.
Si tiene una pieza de hardware de 16 núcleos, puede ejecutar máquinas virtuales utilizando más de 16 núcleos totales, pero para cada segmento de tiempo, solo serán elegibles hasta 16 CPU virtuales para ese segmento de tiempo y el hipervisor debe adaptarse a todos los núcleos para una máquina virtual en ese intervalo de tiempo. No se puede distribuir en múltiples intervalos de tiempo. (Un intervalo de tiempo es esencialmente un conjunto de X ciclos de CPU. Puede ser 1000 o 100k ciclos)
Ej: hardware de 16 núcleos con 8 máquinas virtuales. 6 tienen 4 CPU virtuales (4C) y 2 tienen 8 CPU virtuales (8C).
Timeslice 1: 4x4C Timeslice 2: 2x8C Timeslice 3: 2x4C + 1x8C Timeslice 4: 1x8C + 2x4C
Lo que el hipervisor no puede hacer es dividir la mitad de la asignación para un segmento de tiempo en las primeras 4 CPU de una VM de 8 vCPU y luego en el siguiente segmento de tiempo, dar el resto a los otros 4 vCPU de esa VM. Es todo o nada dentro de un intervalo de tiempo.
Si está utilizando Hyper-V de Microsoft, la configuración de control de energía podría habilitarse en el sistema operativo host, lo que significa que se propagará a los sistemas del cliente, lo que también los afectará.
Una vez que vea cómo funciona esto, es fácil ver cómo el uso de la configuración de Control de energía equilibrado causa problemas de rendimiento y servidores lentos. Uno de los problemas subyacentes es que la solicitud entrante debe esperar a que se complete el proceso de estacionamiento / desarmado de la CPU antes de que el servidor pueda responder a la solicitud entrante, ya sea una consulta de base de datos, una solicitud de servidor web o cualquier otra cosa .
A veces, el sistema estacionará o desanclará CPU en medio de una solicitud. En estos casos, la solicitud comenzará en la tubería de la CPU, será expulsada de ella y luego un núcleo de CPU diferente recogerá el proceso desde allí. Si se trata de una solicitud lo suficientemente fuerte, esto podría suceder varias veces durante el transcurso de la solicitud, cambiando lo que debería haber sido una consulta de base de datos de 5 segundos a una consulta de base de datos de 15 segundos.
Lo más importante que verá al usar Balanced Power es que los sistemas se sentirán más lentos para responder a casi todas las solicitudes que realice.
fuente