Empezaremos con un poco de historia:
- 2016: Construir una PC de bajo consumo en Skylake – 10 vatios en reposo
- 2019: 9 vatios en reposo: crear un NAS / servidor de archivos casero de bajo consumo con 4 unidades de almacenamiento
- 2021: (sin escribir) – 11 vatios con un Intel i3-10320 en un Gigabyte H470M DS3H
No todos mis sistemas han tenido tanto éxito. En 2022 medí otro par de sistemas a 19 y 27 vatios como parte de Frenando las tendencias «Gas-Guzzling» de AMD Radeon con Multi-Monitor. Aunque conseguí reducir la potencia de ese sistema AMD de 27 vatios un tiempo después, no todas las combinaciones de CPU y placa base están destinadas a los 10 vatios.
—
Antes de ir más lejos, la cifra de 7 vatios para este sistema fue antes de que el almacenamiento se ha añadido. Los 7 vatios (medidos en la pared) incluyen:
- Placa base (Intel H770)
- CPU (Intel i5-12400)
- 64 GB DE RAM/li>
- SSD (arrancando Ubuntu Server 23.04)
- Fuente de alimentación (Corsair)
- C-States configurado en BIOS para que llegue a C8
- powertop con auto-tune (que desactivó el teclado USB cuando el puerto se fue a dormir)
Ten en cuenta que si no permito que powertop desactive el teclado, obtengo 8 vatios medidos en la pared.
—
Pasemos a las especificaciones detalladas y a la elección de componentes. Esta vez tenía los siguientes objetivos:
- bajo consumo en reposo
- rendimiento razonable de la CPU para la compresión
- capacidad para 12 discos duros + al menos 1 NVMe
- capacidad para (eventualmente) convertir esos 12 discos duros en 6 NVMe + 6 SSD SATA
- mantener los costes bajo control – ya que sería necesario comprar una placa base, intentar seguir con DDR4 y reutilizar una CPU que ya tengo.
Montar un nuevo sistema con la esperanza de estar en el rango de los 10 vatios *medidos desde la pared* es a menudo no solo un reto, sino un poco arriesgado. A veces sólo tienes que tomar tus mejores conjeturas en términos de componentes, construir tu equipo, ajustar lo que puedas, y dejar que las fichas caigan donde puedan.
Placa base – ASUS Prime H770-Plus D4
Antes de comenzar, aquí está una mirada rápida a la disposición de la placa madre. Las ranuras VERDES conectadas a la CPU y las ranuras NARANJAS conectadas al chipset serán relevantes a lo largo de este artículo.
En el momento de escribir este artículo, las opciones de consumo disponibles eran placas base de las series 600/700 de Intel y 500/600 de AMD.
Uno de mis objetivos anteriores era la capacidad para un eventual 6 unidades NVMe.
Profundizando en los detalles de por qué esto puede ser un reto (siéntase libre de saltarse esta sección)…
Problema: Hay 0 placas base de consumo con 6x ranuras M.2 que se pueden utilizar todos al mismo tiempo en modo PCIe. En AMD la MEG X570S Unify-X Max *parece* que sí, pero comprueba el manual y verás que si intentas poblar las 6, la última tiene que ser una variante SATA. La ASRock Z790 PG Sonic también tiene 6 ranuras, pero solo puedes usar 5 de ellas (con una excusa legítima: ofrecen una ranura Gen5 NVMe pero viene con una advertencia de «o lo uno o lo otro»).
Por qué existe este problema: Hay limitaciones de carril de chipset en las placas de consumo. Suponiendo que yo quisiera poder ejecutar todas las M.2 en Gen4x4 y que un fabricante estuviera realmente dispuesto a dedicar todos los carriles a ranuras M.2 NVMe (no es así), AMD X570 e Intel B760 tendrían un máximo de tres ranuras M.2, mientras que AMD B650 e Intel H670/Q670/Z690/W680 tendrían cuatro. Las placas AMD X670 e Intel H770 pueden tener cinco ranuras M.2. Las placas Z790 pueden tener seis. Seis en una placa Z790. Más allá de eso, se necesitarían medidas extraordinarias como robar carriles a la ranura PCIE principal. Si se deseara un mayor número de ranuras M.2, los fabricantes podrían, en teoría, ejecutar carriles en Gen4x2 o añadir algunas ranuras M.2 Gen3, pero en ese punto habrían creado un producto *muy* de nicho.
La solución: Los adaptadores PCI-E a M.2 se hicieron necesarios. Ahora, al buscar una placa base, era cuestión de añadir las ranuras M.2 incluidas a cualquier ranura PCI-E disponible con capacidad x4 o superior. Mis opciones se limitaban ahora a las placas base AMD X570, Intel H770 e Intel Z790. Tenga en cuenta que, si bien el uso de la bifurcación es una posibilidad en algunas placas base para obtener más de 1 NVMe de la ranura PCIe principal, decidí no confiar en ella.
Me decidí por Intel por varias razones:
- TDP del chipset: los chipsets Intel de las series 600/700 tienen todos un TDP de 6 W, mientras que el TDP del chipset AMD X670 es bastante alto (7w+7w). El consumo de energía de los chipsets AMD me preocupa desde hace tiempo, ya que los anteriores chipsets X570 tenían un TDP de 11w y necesitaban un ventilador.
- Velocidad del chipset: los chipsets Intel H670/Q670/W680/Z690/H770/Z790 tienen un enlace DMI 4.0 x8 con la CPU. Los chipsets AMD X570/B650/X670 tienen un enlace PCIe 4.0 x4 a la CPU. El rendimiento teórico de Intel debería ser el doble que el de AMD (16 GB/s frente a 8 GB/s).
- Ya tenía 64 GB de DDR4 que el sistema Intel podía utilizar. Los chipsets de la serie 600 de AMD sólo admiten DDR5.
- Ya tenía una CPU Intel de 12ª generación.
- Todavía no he visto ningún debate positivo sobre el consumo de energía de AM5. En absoluto. Actualización: mientras escribía esto, han aparecido noticias sobre CPUs AMD de la serie 7000 que se queman/abomban en el punto en el que los pines del zócalo de la placa base se encuentran con la CPU. Sí, lo siento AMD, esta vez no.
Así que fue Intel. Después de comprobar las placas base DDR4 disponibles en el mercado, rápidamente reduje las opciones a 2 fabricantes: MSI y ASUS.
¿No te interesan las comparaciones de tablas? Siéntete libre de saltarte esto.
Las placas MSI más atractivas eran la PRO Z790-P WIFI DDR4 y la Z790-A WIFI DDR4. Casi idénticas en apariencia, salvo que la «A» es un poco más premium (audio, puertos traseros, disipadores, fases de alimentación, etc.). Pros/contras:
- Pro: 4x M.2 (Gen4x4) + 1x PCIE Gen5x16 + 1x PCIE Gen4x4 soporta un total de 6 Gen4 NVMe
- Pro: 2x PCIE Gen3x1 extra
- Pro: 6 puertos SATA
- Contra: LAN Intel 2.5G (conocida por sus problemas y fallos)
- Contra: No soy fan de la BIOS de MSI
- Contra: Mi actual placa B660 que resulta en un consumo en reposo más alto de lo esperado es una MSI.
Las opciones ASUS más atractivas eran la Prime H770-Plus D4 y la Prime Z790-P D4 (edición WIFI opcional). Entrar en los TUF, Strix o ProArt era demasiado caro.
Empezaré por enumerar los pros/contras de la H770-Plus:
- Pro: 3x M.2 (Gen4x4) + 1x PCIE Gen5x16 + 2x PCIE Gen4x4 soporta un total de 6 Gen4 NVMe
- Pro: 2x PCIE Gen3x1 extra
- Contra: Sólo 4 puertos SATA
Pro: Adaptador de Red Realtek 2.5G (preferible a Intel 2.5G LAN hoy en día)(ver comentarios)El Z790-P D4 es similar, excepto que tiene más fases de potencia, mejor disipación térmica, más puertos USB, cabezal de ventilador extra, y para nuestros propósitos…:
- +1 PCIE Gen4x4
- -1 PCIE Gen3x1
En última instancia, el ASUS Prime H770-Plus D4 fue de alrededor de $ 100 más barato en el momento y es lo que elegí.
Una ventaja que he encontrado en las placas «más baratas» es que suelen tener menos componentes y, por tanto, menos consumo de energía en reposo, aunque esto no siempre es seguro.
CPU – Intel i5-12400 (H0 stepping) – Alder Lake
Ya tenía esta CPU como parte de una construcción de escritorio anterior. En el momento en que fue elegido para el sistema de escritorio porque:
- tenía decodificación de hardware AV1
- tenía el mayor rendimiento disponible de la gama Intel de la 12ª generación que evita la sobrecarga del silicio E-core
- de todas formas, iba a comprar una placa base nueva con 2xDP, así que no tenía sentido optar por una generación anterior.
Esa construcción de escritorio resultó ser una decepción, y se ubica como una de mis construcciones menos favoritas.
Algunos detalles…
Tuve problemas en los que a veces sólo 1 de los 2 monitores DP conectados se despertaba en Linux, lo que significaba que tenía que desconectar el otro conector DP, o suspender/reanudar manualmente el sistema para que pudiera intentarlo de nuevo.
Otro problema era que reiniciar entre Windows/Linux a veces causaba problemas extraños que requerían un apagado/reinicio completo.
La decodificación de hardware en Ubuntu mediante Wayland sigue siendo problemática y cuando los programas intentaban utilizarla para reproducir vídeo, se producían problemas.
Por último, a diferencia de mis anteriores sistemas Intel, que podían reducirse hasta cerca de los 10 vatios, éste funcionaba al ralentí con 19 vatios, aunque sospecho que la placa base MSI que estaba utilizando puede haber sido un factor.
La mayoría de los dolores de cabeza que experimenté estaban relacionados con la GPU y la pantalla. Como estaba a punto de montar algo orientado a servidor, eso ya no era un factor.
MEMORIA – 64GB DDR4-3200
Esto es lo que he usado:
- 2x16GB Kingston HyperX de doble rango (Hynix DJR)
- 2x16GB Kingston HyperX de rango único (Hynix CJR)
Esta memoria ya la tenía. Ejecuté los 4 palos de memoria en el perfil XMP del kit de doble rango que era 16-18-18-36. Todo lo demás se dejó esencialmente a los valores predeterminados, excepto que corrí la RAM a 1,25 voltios (más alto que el stock de 1,20, pero inferior a la configuración XMP 1,35v). TestMem5 y Memtest86 mostraron estabilidad a 1,22v, aunque las pruebas de esta memoria en placas base anteriores habían mostrado que 1,22v era inestable, así que para tener un poco más de margen en cuanto a estabilidad aumenté el voltaje a 1,25v.
Unidad de arranque – Sandisk Ultra 3D 1TB SSD
Este componente no fue elegido deliberadamente. Cuando quise una instalación fresca de Ubuntu Server para las pruebas, este resultó ser el único SSD que tenía por ahí que no estaba siendo utilizado actualmente. Iba a hacer muchas pruebas A/B en dispositivos PCIE y NVMe, así que instalar Ubuntu 23.04 en un SSD SATA tenía sentido para mantener libres las ranuras PCIE.
Tenga en cuenta que después de las pruebas, el sistema operativo principal se iba a ejecutar en un Samsung SSD 970 EVO Plus 500GB NVMe. No hay mucho que decir, excepto que las cosas de Samsung tienden a entrar en modos de bajo consumo de forma fiable.
Habiendo utilizado ambas unidades, no puedo medir ninguna diferencia de potencia entre ellas en mis pruebas. Tom’s Hardware probó el Samsung en reposo a 0,072 vatios (mediante ASPM/APST), y Anandtech probó el Sandisk Ultra 3D en reposo a 0,056 vatios (mediante ALPM). Ambos valores están muy por debajo de la resolución de 1 W de mi medidor Kill-A-Watt.
Fuente de alimentación – Corsair RM750
Por mucho que esta fuente de alimentación de 750 W pueda parecer excesiva para un sistema que se pretende que ronde los 10 vatios, cuando 12 motores de unidad giran al mismo tiempo, es probable que la carga instantánea sea bastante alta. Seagate indica picos de corriente de 2A/3A CC/CA en el raíl de 12V para una de sus unidades de 3,5″ de 10TB. Incluso los picos de lectura/escritura aleatoria pueden superar los 2A.
Esta demanda de potencia tiene el potencial de ser problemática si la fuente de alimentación no está a la altura. Si una matriz de 6 unidades consume entre 150 y 200 vatios al mismo tiempo que la CPU alcanza un pico de 120 vatios, se pasa de unos 10 vatios en reposo a unos 400 vatios. Esto podría causar fácilmente una caída instantánea de voltaje – si cae lo suficiente como para causar un bloqueo/reinicio inmediato probablemente no sea un gran problema, pero si cae lo suficiente como para que los datos se corrompan durante una actualización de memoria o cuando otra unidad está a mitad de escritura… eso es un problema más doloroso. Sobredimensionar la fuente de alimentación hasta cierto punto (o añadir algunos condensadores en línea a los raíles de alimentación) tiene sentido.
Afortunadamente, a pesar de funcionar fuera del rango de eficiencia máxima, gran parte de la serie Corsair RM es bastante eficiente en un amplio rango.
Mediciones de potencia – Inicial
Algunos datos importantes:
- Potencia medida desde la pared
- Se utilizó Intel PowerTOP para autoajustar la configuración
- Servidor Ubuntu 23.04
Algunos datos potencialmente importantes de la BIOS:
- CPU C-estados fueron habilitados en el BIOS (C10)
- ASPM habilitado con todo configurado en L1
- RC6 (Render Standby) activado
- Soporte LPM agresivo habilitado (ALPM)
- DESHABILITADOS: Audio HD, Modo Conectividad, LEDs, Dispositivo GNA, Puerto Serie
9-10 vatios era el consumo cuando la salida de pantalla estaba encendida.
7 vatios era el consumo una vez que la pantalla se apagaba (consoleblank=600 parámetro de arranque del kernel para un temporizador de 600s), que es donde este sistema se encuentra la mayor parte de la semana.
8 vatios fue el consumo si la gestión de energía del teclado USB estaba desactivada. Si no haces SSH en el servidor desde otro lugar, gastar el vatio extra para el uso del teclado puede ser necesario.
Mediciones de potencia problemáticas – Cargado con óxido giratorio (no giratorio)
Como mencioné al principio, empecé con 12 discos duros. La mitad eran de 2,5″ y la otra mitad de 3,5″. Debido a que la placa base sólo tiene 4 puertos SATA, se utilizó un controlador SATA y un multiplicador de puertos para manejar las unidades restantes. Además, al principio se utilizaron 4 unidades NVMe: una de ellas, una Western Digital SN770 tenía tendencia a calentarse bastante incluso en reposo, lo que indica que probablemente no entraba en modo de bajo consumo.
Con todo el equipo conectado, en reposo, con la pantalla apagada y con las 12 unidades en modo de espera, me sorprendió ver que mi consumo de energía en reposo había pasado de 7 vatios a la friolera de 24-25 vatios. Demasiado. Algo iba mal.
Enigmas de consumo de energía – Investigación y diagnóstico de alta potencia
Desconecté los discos duros y empecé a probar los componentes de uno en uno. Eran pruebas bastante rudimentarias para hacerme una idea aproximada del culpable, así que los números no son precisos.
Rápidamente descubrí que el controlador SATA JMB585 que estaba utilizando provocaba un aumento del consumo de energía de entre 6 y 10 vatios (las mediciones precisas se incluyen en una sección posterior). Se supone que el controlador en sí sólo consume un par de vatios, y el pequeño disipador se mantenía frío, así que obviamente estaba pasando algo más. ¿A dónde iba la energía?
Decidí observar los estados C del paquete de la CPU. Sin el controlador SATA JMB585, el sistema llegó a C6. Cuando volví a conectar el JMB585, lo máximo que alcanzó el sistema fue C3. ¿Pero por qué? Resulta que si un dispositivo conectado a PCIE no entra en ASPM L1, la CPU no entra en un sueño tan profundo. Las tarjetas controladoras JMB585 no parecen tener soporte ASPM.
Un poco más de experimentación reveló algo más que no sabía, y tiene que ver con C6 vs C8. El sistema sólo llegará a C8 si no hay nada conectado a los carriles PCIE conectados a la CPU. En otras palabras, si hay algo conectado a la ranura PCIE superior o a la ranura NVMe superior, C6 es el máximo. La diferencia de consumo entre C6 y C8 *parecía* ser inferior a un vatio en una prueba sencilla.
Así que mientras que C8 sería un lujo, llegar a C6 era una obligación. C3 consume demasiada energía. Si los controladores SATA iban a impedir que la CPU alcanzara los mejores estados de ahorro de energía, empecé a preguntarme si debería haber buscado una placa base con 6-8 puertos SATA para no tener que depender de controladores adicionales…
Un poco de búsqueda de HBA SATA mostró que, si bien no hay muchas opciones aquí, el controlador SATA ASM1166 debe soportar ASPM L1, aunque el firmware tiene que ser flasheado para que funcione correctamente (y para trabajar en absoluto en las nuevas placas Intel). Esto era algo que tendría que pedir: Tengo repuestos de Marvel y JMicron, pero no son compatibles con ASPM. En realidad, llevaba años evitando ASMedia, pero por necesidad ahora tenían otra oportunidad: Pedí un par de controladoras SATA ASM1166 de 6 puertos.
Aparte: BadTLP, ¡Malo! Errores de bus AER desde el pcieport
Vale la pena mencionar… Durante las pruebas iniciales con un WD Black SN770 (Gen4 NVMe), encontré un problema cuando se utilizaron los puertos PCIE y NVMe primarios (conectados a la CPU superior). Ejecutar dmesg resultó en una salida llena de cosas como:
pcieport 0000:00:06.0: AER: Corrected error received: 0000:02:00.0
nvme 0000:02:00.0: PCIe Bus Error: severity=Corrected, type=Physical Layer, (Receiver ID)
pcieport 0000:00:06.0: PCIe Bus Error: severity=Corrected, type=Data Link Layer, (Transmitter ID)
pcieport 0000:00:06.0: AER: Error of this Agent is reported first
nvme 0000:02:00.0: [ 6] BadTLP
… después de mucho ensayo y error me encontré con que si el «PEG – ASPM» BIOS configuración se establece en [Desactivado] o [L0s] no hubo errores.
Por supuesto, esta era una mala opción, ya que [L1] es crucial para el ahorro de energía. Si se usaba [L1] o [L0sL1], la única opción era ajustar la velocidad de enlace de esos puertos a [Gen3], lo que no detenía los errores, pero los reducía sustancialmente.
Algunas investigaciones mostraron que la causa raíz puede ser cualquier número de cosas. Dado que cambiar la placa base o la CPU no era una idea agradable, mi mejor esperanza era cambiar a una marca diferente de NVMe.
Pedí unas unidades Crucial P3 NVMe. Esto resultó ser un esfuerzo exitoso: con las unidades WD reemplazadas por las unidades Crucial, ya no estaba recibiendo ningún error, aunque tenga en cuenta que estas son unidades Gen3.
Consumo de energía Puzzles – Encontrar L1.1 y L1.2 para ser habilitado sólo en los puertos conectados al chipset
Cuando tuve las 2 unidades Crucial P3 NVMe instaladas en la ranura PCIEx16 conectada a la CPU y en la ranura M2 superior, noté temperaturas en reposo más altas de lo esperado. Mientras que la NAND estaba a unos 27-29C, los controladores informaban de 49-50C, mucho más de lo que esperaba para estas unidades en particular.
Moví el de la ranura PCIEx16 a una ranura PCIEx4 conectada al chipset. Una diferencia interesante entre estas unidades se mostró a través de lspci -vvv:
Ranura M2 conectada a la CPU: L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
Ranura PCIE conectada al chipset: L1SubCtl1: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
Los subestados L1 sólo parecen activarse en las ranuras conectadas al chipset. Lamentable, pero parece coincidir con la configuración de la BIOS disponible en la captura de pantalla anterior.
Volvamos a la imagen de la placa base para mostrar la situación:
Puse ambas unidades NVMe en las ranuras PCIE conectadas al chipset. Ahora ambas mostraban L1.1+/L1.2+ y las temperaturas de ambas controladoras bajaron del rango de 49-50C a 38-41C.
Por desgracia, al intentar varias pruebas A / B utilizando estas 2 unidades Crucial NVMe con diferentes configuraciones de ranura y varios ajustes del BIOS, vi un comportamiento muy inconsistente en términos de temperatura, aunque vale la pena señalar que el JMB585 y una unidad de arranque NVMe también estaban conectados durante estas pruebas. Por ejemplo, ambas unidades podrían estar inactivas a unos 40C hasta un reinicio suave en el que 1 (o ambas) podrían ahora estar inactivas en el rango de 50C. A veces parecía posible mantener 1 unidad en la M.2 conectada a la CPU y mantener temperaturas de 40C en ambas unidades siempre que la ranura x16 no estuviera ocupada. Presumiblemente me estaba encontrando con algún tipo de bug. El Samsung NVMe de arranque parecía mantener una temperatura constante de inactividad, independientemente de lo que estaba pasando con las unidades Crucial NVMe, así que sospecho que las propias unidades Crucial son al menos en parte culpables.
Curiosamente, a veces la temperatura de uno de los controladores (o de ambos) bajaba hasta el rango de los 29C en las ranuras conectadas al chipset. Dado que intentar encontrar un sustituto NVMe de bajo consumo de 4 TB para el Crucial P3 no era un objetivo realista, mi mejor esperanza en este punto era que el JMicron JMB 585 incompatible con ASPM fuera de alguna manera el culpable, ya que pronto iba a ser sustituido por el ASMedia ASM 1166 compatible con ASPM.
Actualización tardía: Desgraciadamente, no hice un seguimiento de las temperaturas durante el resto de las pruebas, y los disipadores y el flujo de aire entre las unidades se han mezclado. Pero por si sirve de algo, en la versión final, la temperatura de mi controlador Crucial P3 es de 31-34C, y la temperatura de la NAND es de 23-24C.
Puzzles de consumo de energía – Cambio del JMB585 al ASM1166.
Después de un par de semanas llegó la ASM1166. En primer lugar un par de bits con respecto a la tarjeta que usted puede encontrar útil si usted está considerando…
Empecé por actualizar el firmware – las tarjetas ASM1166 suelen tener un firmware antiguo que no funciona con las placas base Intel de la serie 600 y, por lo que tengo entendido, puede tener problemas con la gestión de la energía. Se puede encontrar un firmware más reciente en varios sitios, pero decidí conseguir una copia de SilverStone («fix compatibility issue» en la sección Download de https://www.silverstonetek.com/en/product/info/expansion-cards/ECS06/) y seguí las instrucciones en https://docs.phil-barker.com/posts/upgrading-ASM1166-firmware-for-unraid/ . Nótese que los archivos de SilverStone tenían un MD5 idéntico al firmware que encontré siguiendo el hilo en https://forums.unraid.net/topic/102010-recommended-controllers-for-unraid/page/8/#comment-1185707 .
Para cualquiera que esté planeando comprar una de estas tarjetas ASMedia, debo hacer notar que como la mayoría de los controladores SATA y HBAs que existen, la calidad realmente varía. Una de mis tarjetas tenía un disipador térmico que estaba un poco torcido: la almohadilla térmica era lo suficientemente gruesa como para evitar que cortocircuitara los componentes cercanos, pero hay que tener en cuenta que estos productos pueden dar muchos problemas. Esta es una de las situaciones en las que pagar un poco más para comprar en un sitio con una buena política de devoluciones puede ser prudente.
Hice bastantes pruebas A/B, así que aquí tienes un rápido «JMicron JMB585 vs ASMedia ASM1166» en términos de consumo total del sistema, aunque puede que sólo sea aplicable a esta plataforma (o quizás incluso a esta placa base en concreto).
SIN UNIDAD
En primer lugar, el consumo de energía sin ninguna unidad conectada a las tarjetas (la unidad de arranque SSD SATA está conectada a la placa base) para obtener una línea de base. PowerTOP utilizado en todos los dispositivos excepto el teclado (añadiendo +1 vatio). Las mediciones después de la salida de la pantalla se fue a dormir.
- 8 vatios – Sin controlador SATA – estado de energía C8
- 9 vatios – ASM1166 en una ranura x4 conectada al chipset – estado de alimentación C8
- 12 vatios – JMB585 en la ranura x16 conectada a la CPU – estado de alimentación C3
- 15 vatios – JMB585 en una ranura x4 conectada al chipset – estado de alimentación C3
- 22 vatios – ASM1166 en la ranura x16 conectada a la CPU – estado de alimentación C2
El ASM1166 lo hace bien aquí si se conecta a una ranura conectada al chipset (sólo +1 vatio), pero lo hace horriblemente si se conecta a la ranura PCI-E principal (+14 vatios), donde el estado de energía del paquete de la CPU cae en picado hasta C2. Sorprendentemente, el JMB585 se comporta de manera opuesta donde su consumo es menor en la ranura conectada a la CPU (y no causó C2) – sin embargo, pronto verás que las cosas cambian cuando las unidades están realmente conectadas…
Hice pruebas adicionales con los controladores, incluyendo el juego de «sillas musicales» con un par de unidades NVMe para ver si varios dispositivos de tirar una llave en las cosas, pero nada inesperado tuvo lugar, así que voy a omitir esos detalles.
CUANDO SE INSTALAN LOS DISCOS DUROS
Una vez completadas las mediciones de referencia, llegó el momento de instalar algunas unidades en estos controladores. La unidad de arranque SSD SATA se quedó en la placa base, se añadieron 2 unidades NVMe a la mezcla (conectadas al chipset a menos que se indique lo contrario) y se colocaron 4 de los discos duros SATA de 2,5″ en la controladora. Voy a enumerar el consumo de «spun down» después de que los discos duros entraron en reposo – «spun up» fue exactamente 2 vatios más alto en cada prueba mientras las unidades estaban inactivas.
- 10 vatios – ASM1166 en una ranura x4 conectada al chipset – estado de alimentación C8
- 11 vatios – ASM1166 en una ranura x4 conectada al chipset con 1 NVMe trasladado a la ranura x16 conectada a la CPU – estado de alimentación C6
- 11 vatios – 2x ASM1166 en ranuras x4 conectadas al chipset, con sólo 1 unidad NVMe – estado de alimentación C8
- 16 vatios – JMB585 en una ranura x4 conectada al chipset – estado de alimentación C3
- 24 vatios – JMB585 en una ranura x16 conectada a la CPU – estado de alimentación C2
Con 4 unidades conectadas a través de una ranura conectada al chipset, el ASM1166 añade +2 vatios al consumo de energía del sistema, mientras que el JMB585 añade +8 vatios. Sin discusión.
Otra ventaja es que pude utilizar las dos tarjetas ASM1166 en el sistema, mientras que si intentaba utilizar las dos tarjetas JMB575 al mismo tiempo, el sistema se negaba a arrancar, aunque podría tratarse de un problema específico de la plataforma o la placa base.
Siempre me ha parecido que la JMB585 es muy fiable, incluso cuando se combina con un multiplicador de puertos JMB575. Mi experiencia con las controladoras ASMedia SATA no ha sido muy buena: la fiabilidad de la ASM1166 está por ver, pero como mínimo es una mala candidata para un multiplicador de puertos, ya que no admite FBS (sólo CBS).
Un par de otros contratiempos menores que se presentaron con el ASM1166:
- Al quitar / volver a insertar la unidad de arranque NVMe, apareció un mensaje de BIOS alegando que no podía arrancar debido a la corrupción GPT. Las tarjetas ASM1166 tuvieron que ser retiradas temporalmente para que la BIOS «encontrara» de nuevo la unidad de arranque NVMe (tras lo cual pudieron ser reinstaladas).
- Las tarjetas ASM1166 dicen tener *muchos* puertos – esto causa tiempo de arranque adicional ya que Linux tiene que iterar a través de todos ellos.
Actualización: SATA y marcas de SSD
En uno de los comentarios se mencionaba que un Samsung 840 PRO SSD más antiguo se limitaba a C3, mientras que un Crucial Force GT SSD permitía C8. Aunque se trata de unidades más antiguas, me sorprendió un poco. Merecía la pena investigarlo.
Utilicé el H770 como banco de pruebas con una unidad de arranque SSD SATA Samsung 850 EVO junto con un Crucial P3 NVMe y creé un kernel personalizado para permitir que el adaptador de red Realtek alcanzara L1.2. No había ASM1166, solo utilizaba un adaptador de red Realtek. No ASM1166, sólo el uso de Intel a bordo SATA. Alcancé C10 después de ejecutar powertop con auto-tune y permitir que la pantalla durmiera.
A continuación, añadí un Patriot P210 SATA SSD. Atascado en C6.
Quité el Patriot P210 y probé con un disco duro SATA Seagate de 4 TB y 2,5″. C10. Lo cambié por un disco duro SATA Seagate de 3,5″ y 8 TB. C10. Lo cambié por un disco duro SATA Toshiba de 14 TB. C10. Añadí una unidad SSD SATA Sandisk Ultra 3D de 1 TB al disco duro Toshiba. C10.
La lección: es evidente que debemos ser exigentes con las unidades SSD SATA. Siéntase libre de dejar un comentario con los buenos / malos que se encuentran.
Puzzles sobre consumo energético – Conclusión
Algunos puntos importantes si quieres reducir el consumo:
1) El soporte de la placa base y la configuración de la BIOS son fundamentales. He tenido placas base con BIOS muy inflexibles. En esta, «Native ASPM» y los estados L1 apropiados deben estar habilitados (para permitir el control por el SO en lugar de por la BIOS) para que el bajo consumo funcione.
2) Todos los dispositivos deben ser compatibles con ASPM L1. De lo contrario, estarás jugando a los dados. La parte más difícil aquí, como habrás adivinado, es encontrar controladores SATA que lo soporten; si es posible, consigue una placa base con suficientes puertos SATA conectados al chipset Intel para evitar necesitar una tarjeta aparte. Debo señalar que encontrar unidades NVMe que tengan estados de energía APST de bajo consumo que funcionen bajo ASPM no siempre es un hecho y querrás hacer algo de investigación allí también.
3) Si puedes alcanzar el estado de energía C8, evita usar los carriles PCIe conectados a la CPU (PCIe superior y ranura M2). En esta placa base específica, mi consejo sería evitar el uso de ellos por completo si es posible, a menos que necesite la ruta de ancho de banda completo de baja latencia a la CPU o sus dispositivos son tan activos que nunca duermen de todos modos. Recuerda que AMBAS tarjetas SATA de JMicron y ASMedia hicieron que el estado C del paquete de la CPU cayera a C2 si se conectaban a la ranura PCI-E x16.
4) Medir la potencia desde la pared es la única manera de asegurarse de que lo que *piensa* que está sucediendo está sucediendo realmente. Un dispositivo Kill-A-Watt se pagará por sí mismo con el tiempo si lo usas – considera que compré el mío en 2006 ($16USD + $14USD de envío en ese momento a través de eBay). En ese momento descubrí que nuestra máquina de fax, que rara vez se utilizaba y que siempre estaba encendida, consumía 7 vatios… sólo con mantener ese dispositivo apagado cuando no se utilizaba durante los siguientes 10 años, se pagó con creces el Kill-A-Watt.
Consumo de energía cuando se carga con un montón de discos duros
Ahora que varias piezas han entrado y salido del sistema a lo largo de este proceso, la configuración actual es la siguiente:
- 1x Samsung 970 EVO Plus NVMe (unidad de arranque de 500 GB)
- 2x Crucial P3 NVMe (4 TB cada una)
- 5x Seagate 2.5″ HDD (5TB cada uno – 4TB utilizados)
- 6x discos duros Seagate de 3,5″ (10 TB cada uno – 8 TB utilizados)
- 2x tarjetas ASM1166 que proporcionan puertos SATA
Potencia total medida desde la pared (pantalla encendida, teclado activado):
- 50 vatios con los 11 discos duros en reposo activo
- 38 vatios con los 6 discos duros de 3,5″ en Idle_B
- 34 vatios con los 6 discos duros de 3,5″ en Idle_C
- 21 vatios con los 6 discos duros de 3,5″ en Standby_Z (girados hacia abajo)
- 18 vatios con los 5 discos duros de 2,5″ TAMBIÉN en espera
- 16 vatios con la salida de pantalla TAMBIÉN apagada
- 15 vatios cuando PowerTOP puede desactivar el teclado USB
Seagate valora el consumo en espera de estas unidades de 3,5″ en unos 0,8 vatios cada una, y el de las unidades de 2,5″ en unos 0,18 vatios cada una. Esto coincide con lo que veo arriba. Mis cifras de inactividad activa coinciden bastante bien con las especificaciones de Seagate.
La observación obvia: en comparación con el resto de los componentes del sistema, las unidades de 3,5″ son monstruos hambrientos de energía.
Los discos duros acabarán siendo sustituidos por unidades SSD. Con un consumo en reposo tan bajo como el de los discos duros en modo de espera, no hay mucha prisa y este proceso se llevará a cabo gradualmente a medida que mis discos duros/residuos mueran y los precios de los SSD bajen.
El plan para el «juego final» es construirlo todo con SSD. Originalmente el plan era 1 unidad de arranque, 6xNVMe (probablemente Crucial P3 4TB) para una matriz RAIDZ2, y 6xSATA (probablemente Samsung 870 QVO 8TB) para la segunda matriz RAIDZ2. Dado que el uso de las ranuras M2/PCIe conectadas a la CPU no sólo es impredecible, sino que también conlleva un ligero coste de estado C/energía/temperatura, puede que modifique el plan y renuncie a un par de NVMe en la primera matriz y utilice SATA en su lugar para no tener que tocar los carriles conectados a la CPU. El tiempo lo dirá.
Detalles innecesarios sobre el almacenamiento
Esta parte sólo merece la pena leerla si te interesan los detalles meticulosos sobre el almacenamiento. Si no es así, salta a la sección final.
Unidad de arranque NVMe
Como ya se ha mencionado, se trata de un Samsung 970 EVO Plus. Actualmente se utilizan menos de 4 GB de los 500 GB de espacio (existe una partición de intercambio de 64 GB, pero siempre está a 0 de uso). Se eligió originalmente porque Samsung había desarrollado una reputación de fiabilidad (que se ha ido quedando por el camino últimamente), y Samsung también obtuvo buenas puntuaciones en las revisiones cada vez que se trataba de consumo de energía en reposo. Esta unidad está casi siempre en reposo y tanto la temperatura del controlador como la de la NAND se mantuvieron bajas durante todas las pruebas (20-24C). Es posible que con el tiempo se cambie a un SSD SATA para liberar un puerto NVMe.
DISCO DURO DE 2,5
Estas unidades se utilizan para la matriz principal ZFS RAIDZ2 de 6 unidades, la que más se utiliza. Un día a la semana está ocupado con una tarea que implica la lectura de unos cuantos TB en el transcurso de 24 horas. El uso durante el resto de la semana es esporádico, y las unidades pasan la mayor parte de la semana apagadas. Para cualquiera que se pregunte por qué se utilizan las insignificantes unidades de 2,5″ en lugar de las de 3,5″, hay *una* razón: el consumo de energía.
El consumo de energía de las unidades Seagate de 2,5″ es realmente impresionante. Cuando están giradas, consumen 0,18 vatios cada una; en reposo, 0,85 vatios, y los promedios de lectura/escritura rondan los 2 vatios. Hay muchas unidades SSD con peores cifras de consumo que este disco giratorio. 5 TB de capacidad dan mucho almacenamiento por vatio.
Las principales desventajas de estas unidades Seagate de 2,5″ son:
- No tienen un gran rendimiento. 80-120 MB/s pico de lectura/escritura. Para ser justos, muchas unidades SSD TLC/QLC caen a estos niveles de escritura cuando se agota su caché SLC.
- SMR (grabación magnética Shingled). Las lecturas están bien, pero el rendimiento de escritura cae en picado cuando se producen escrituras aleatorias: actúa como un SSD QLC sin caché SLC que tampoco tiene TRIM.
- Carga de trabajo nominal baja (55 TB/año frente a los 550 TB/año de las unidades Exos de 3,5″).
- No hay tiempo de recuperación de errores configurable (SCT ERC), y estas unidades pueden quedarse colgadas durante minutos si se produce un error mientras intentan sin descanso volver a leer el sector problemático. Ubuntu necesita ser configurado para esperar en lugar de tratar de reiniciar la unidad después de 30 segundos.
- Tasas de error más altas si se calientan (he tenido que reemplazar unos cuantos y he descubierto que no les gusta calentarse).
- Problemas típicos de los discos duros (lentitud de giro, etc.).
Para ser absolutamente justos con Seagate, se venden como unidades de copia de seguridad USB externas. Sacar estas unidades de 15 mm de alto de las carcasas y usarlas como miembros RAID en un NAS no es exactamente usarlas como se pretende. El consumo de energía ultra bajo es tremendo, pero hay compensaciones obvias.
A largo plazo, estas unidades de 2,5″ de 4/5 TB serán reemplazadas lentamente por unidades SSD de 4 TB (posiblemente todas NVMe). Las unidades SSD de 4 TB de capacidad empezaron a estar disponibles en el mercado de consumo en 2021/2022 a un precio entre 4 y 5 veces superior al de las unidades giratorias. Menos de 2 años después han bajado a alrededor de 2 veces el costo, y espero que las marcas decentes duren más de 2 veces más que los spinners de Seagate.
Si sigue habiendo disponibilidad del modelo Crucial P3 (Gen3), probablemente me quede con este modelo a pesar de estar limitado a velocidades Gen3. Consideré seriamente el Crucial P3 Plus (Gen4), pero el consumo de energía en las reseñas era superior a pesar de que en muy pocas situaciones el rendimiento también era notablemente superior. Mi mayor preocupación con el P3 Plus (Gen4) era que si tenía problemas con ASPM/APST, Tom’s Hardware lo mostraba con una prima de consumo en reposo de 0,3 W sobre el P3 (Gen3) para el modelo de 2 TB. Prefiero que la potencia en el «peor de los casos» sea lo más baja posible.
DISCO DURO DE 3,5
Se utiliza en la matriz secundaria RAIDZ2 de 6 unidades, una matriz de copia de seguridad que se pone en marcha durante unas 2 horas a la semana, donde recibe escrituras pesadas constantes.
El consumo de energía de las unidades Seagate de 3,5″ es el esperado. Estas unidades de 10 TB consumen aproximadamente 0,8 W cada una en modo de espera, entre 2 y 5 W en reposo y entre 6 y 9 W en lectura y escritura.
Dos preocupaciones aquí:
- Estos están clasificados para tirar colectivamente alrededor de 45-50 vatios al escribir. Eso es un poco de carga extra del SAI que realmente no quiero si se produce un corte de energía prolongado durante las copias de seguridad (me quedo con los SAI de 1500 vatios de consumo).
- TEstos están clasificados para tirar colectivamente alrededor de 4,8 vatios cuando está en espera. Una vez más, no me importaría reducir la carga del SAI.
A largo plazo, estas unidades probablemente serán sustituidas por unidades SATA Samsung 870 QVO de 8 TB. El 870 QVO consume 0,041w/0,046w en reposo con ALPM, 0,224w/0,229w en reposo sin ALPM y 2,0-2,7w durante una copia (según Toms/Anandtech).
En cuanto al precio, el SSD SATA de 8 TB de Samsung es actualmente un poco más caro que los Spinners de 8 TB (casi el triple), así que a menos que estas unidades empiecen a usarse con más frecuencia por alguna razón, la sustitución por los SSD casi seguro que esperará hasta que me quede sin repuestos.
Unidad caché NVMe
Sustituir mis discos duros giratorios por unidades SSD es un proceso que probablemente llevará un tiempo.
Mientras tanto, ZFS tiene un par de opciones para hacer uso de almacenamiento de alta velocidad (típicamente SSD) frente a almacenamiento más lento:
- Clase de Asignación «Especial» – permite crear un vdev específicamente para metadatos y para bloques «pequeños» si se desea.
- Una unidad caché, conocida comúnmente como L2ARC.
Si crea el vdev «especial» al crear el pool, todos sus metadatos (y opcionalmente, pequeños bloques del tamaño que elija) irán al vdev «especial» en lugar de a su disco giratorio. Listas de archivos y directorios muy rápidas mientras se mantiene el spinning rust para los propios archivos. Sí, usted puede «ls» un montón de directorios sin despertar a sus discos duros del reposo. El mayor inconveniente es que, como todos los metadatos están en este vdev, si alguna vez muere, el acceso a todos los datos desaparece. Así que realmente debería ser al menos un espejo. Tal vez incluso un espejo de 3 vías. Despídete de algunos puertos.
El L2ARC es un poco diferente. Es esencialmente un caché de nivel 2. Cuando la caché en RAM se llena, ZFS copiará algunos de los bloques al L2ARC antes de desalojar ese contenido de la RAM. La próxima vez que sea necesario acceder a esos datos, se leerán del L2ARC en lugar del disco. Uno de los beneficios en comparación con el vdev «especial» es que usted está bien con sólo 1 SSD – si hay un problema con los datos en el L2ARC (mala suma de comprobación, la unidad muere, etc), ZFS sólo leerá el contenido del disco original. Además, una vez que el L2ARC está lleno, ZFS simplemente empezará de nuevo al principio del SSD L2ARC y sobrescribirá el material que escribió antes, lo que tiene algunos pros (datos antiguos a los que ya no se accede) y contras (datos a los que se accede con frecuencia y que necesitarán ser escritos de nuevo en el L2ARC). También puedes añadir/eliminar dispositivos L2ARC del pool cuando quieras – ¿quieres añadir un SSD de 64GB, un SSD de 500GB, y un SSD de 2TB? Adelante, ZFS distribuirá los bloques entre ellos. ¿Necesitas retirar el SSD de 500 GB del grupo unos días más tarde y utilizarlo en otro lugar? Adelante. El mayor inconveniente del L2ARC es que si olvidas especificar «caché» al añadir el dispositivo, probablemente habrás estropeado tu pool. También es imperfecto: incluso con un ajuste cuidadoso es difícil conseguir que ZFS escriba TODO lo que quieras en el L2ARC antes de que sea desalojado de la memoria. Al mismo tiempo, dependiendo de sus datos, el L2ARC puede ver una gran cantidad de escrituras, y puede que tenga que vigilar cuidadosamente la salud de su SSD.
En el pasado he usado el «especial», he usado el L2ARC, y he usado ambos al mismo tiempo (incluso puedes decirle al L2ARC que no almacene en caché cosas ya contenidas en el vdev «especial»).
Esta vez simplemente he optado por un L2ARC en un NVMe de 4TB: una vez que todas las demás unidades de 2,5″ hayan sido sustituidas por SSD y las ventajas de velocidad de una caché SSD ya no sean aplicables, simplemente podré eliminar este dispositivo de caché (aunque teóricamente tener una unidad de caché L2ARC gestionando la mayor parte de las lecturas *permitiría* que las demás unidades NVMe permanecieran más tiempo en modo de bajo consumo…).
Conclusión – ¿Se arrepiente? ¿Dudas? ¿Qué podría haber sido diferente?
A diferencia del montaje de la ASRock J4005, en el que me di cuenta a mitad de camino de que me había puesto de rodillas de varias maneras, aquí no tengo la misma sensación. Esta vez terminé con baja potencia en reposo Y un sistema bastante capaz que debería ser flexible incluso si se reutiliza en el futuro.
Estoy bastante contento con mis opciones de componentes, aunque me gustaría saber cómo el MSI PRO Z790-P DDR4 (una de las otras placas base que consideré) haría en comparación. En cuanto a la funcionalidad, la MSI tiene la ventaja de contar con 6 puertos SATA, pero tiene el inconveniente obvio del famoso chip de red Intel 2.5G. El MSI también tiene un puerto PS/2 y nunca he comprobado si el consumo de energía del teclado PS/2 es menor que el del USB (recuerdo que ahorro 1 vatio si dejo que powertop apague el puerto USB del teclado). Y, por supuesto, sería interesante comparar las configuraciones ASPM y ALPM, y ver si los inconvenientes que encontré con las ranuras PCIe/M.2 conectadas a la CPU existen de la misma manera.
Mientras que este sistema se encuentra actualmente en el rango de 15-16 vatios en reposo con las unidades en standby, una vez que todos los discos duros se sustituyen por SSDs, yo esperaría que el consumo en reposo de alrededor de 10-11 vatios que no es malo para 72TB valor de las unidades, 64 GB de RAM, y un procesador bastante decente.
Actualización: Los últimos núcleos de Linux desactivan los modos de ahorro de energía L1 de la mayoría de las NIC de Realtek, lo que impide que la CPU entre en estados C decentes, aumentando así el consumo de energía bastante. Aunque existen soluciones, de ahora en adelante me limitaré a las placas base que contengan adaptadores de red Intel de 1 Gigabit (quizás me pase a Intel de 2,5 Gigabit cuando esté claro que han solucionado todos los problemas). Puedes encontrar más detalles sobre la situación de Realtek NIC en los comentarios más abajo.
Supongo que te habrías evitado muchos dolores de cabeza si hubieras encontrado una placa con más puertos sata.
Por mi parte, nunca conseguí llevar mi chip más allá de C3. Intenté a propósito reducir la cantidad de componentes sobrantes (como esos controladores SATA, sobre los que había leído que podían dar problemas y fallar).
Volveré a comprobar la configuración de mi BIOS para asegurarme de que he activado todas las cosas relevantes que mencionas en tu artículo.
Muy interesante artículo, muchas gracias.
Así que no se preocupan por ECC, algunos dicen que es una necesidad para un servidor siempre en especial con ZFS.
También NVME parece quemar más combustible que los SSD.
Estoy buscando una placa base ECC frugal, pero no he encontrado nada todavía, placas W680 son difíciles de conseguir.
Mientras tanto estoy ejecutando Unraid en una placa Asrock J5040 con dos SSD de 1TB en espejo y 3 WD mecánicos que están durmiendo la mayor parte del tiempo.
El sistema quema 19 vatios en reposo, era 16-17 vatios (C6) antes de añadir un controlador Asmedia (4). Pronto cambiaré la vieja fuente de alimentación seasonic por una Corsair.
Saludos
Geert
Ten en cuenta que si la segunda ranura M.2 está ocupada, sólo funcionarán 5 de los 6 puertos SATA. Si no recuerdo mal, la BIOS de la H470M DS3H también ocultaba algunas opciones (como forzar IGPU o GPU dedicada) a menos que se pusiera en modo CSM. Además se colgaba aleatoriamente en la pantalla de arranque con un error si tenía un LSI SAS HBA instalado, necesitando otro intento de reinicio - los controladores SATA normales funcionaban bien sin embargo. Dejando de lado esos pequeños matices extraños, me pareció fiable y funcionó muy bien y me gusta bastante la placa.
¿Tienes pensado publicar un artículo similar pero para un sistema con soporte ECC y bajo consumo de energía en reposo que siga siendo compatible con Linux (creo que el bajo consumo de energía en reposo de AMD no es el mejor para Linux como ejemplo).
Estoy planeando hacer una construcción pronto y me gustaría saber si debo empezar a hacer mi construcción en el próximo mes o dos o tal vez esperar un poco para leer sus publicaciones que proporcionarían algunos útiles en los sitios que me pueden ayudar a tomar una decisión mejor educada en la elección de componentes.
Sin embargo, muchas gracias por el artículo escrito a fondo. Has hecho un trabajo impresionante destacando las partes importantes de la construcción de un NAS de bajo consumo muy eficiente.
En cualquier caso, ¡mucha suerte con tu construcción!
Gracias por tus artículos tan detallados e informativos sobre los NAS.
Estoy construyendo el mío con un i3-10500T, 16GB y 4xHDD.
En cuanto a la fuente de alimentación, he encontrado una Antec EarthWatts 380W EA-380D (80+ Bronze) reacondicionada por 25€. ¿merece la pena en tu opinión? o ¿es demasiado vieja?
Si tienes otro modelo que recomendarme, me interesa. Gracias de antemano.
También tengo una 970 Evo Plus (2 TB) como unidad de arranque y puedo confirmar que debe estar conectada al chipset para alcanzar los estados C de paquete bajo (C8). Lo que me pareció interesante es que la diferencia entre el paquete C3 y C8 era mucho mayor cuando la unidad SSD estaba conectada al chipset. Creo que esto se debe a que el chipset sólo entra en estado de reposo profundo cuando todos los dispositivos conectados admiten ASPM y la gestión de energía SATA Link está activa.
Conectar el SSD a la CPU PCIe sólo aumentó el consumo de energía en ~2W (Paquete C3 vs C8), mientras que no tener ASPM en un dispositivo conectado al chipset parece tomar 5W adicionales sólo para el chipset, pero tiene el mismo efecto (C3) al paquete C-Estado.
Una cosa interesante es que tengo una tarjeta PCIe 1.1 DVB-C Capture conectada al chipset. Aunque ASPM está listado como una capacidad para la tarjeta por lspci y arranqué el kernel con pcie_aspm=force no se habilitó para esa tarjeta. Tuve que forzar la activación de ASPM a través de setpci, ver https://wireless.wiki.kernel.org/en/users/documentation/aspm - parece funcionar sin problemas. Eso me ayudó a alcanzar esos 15W de potencia en reposo. Por desgracia, la tarjeta de captura todavía toma ~ 5W, de lo contrario actualmente sólo tengo 2x4TB HDD de Toshiba conectado que girar hacia abajo cuando está inactivo.
Por cierto, Sata Hot Plug debe estar desactivado para todos los puertos, o de lo contrario el paquete sólo llegará a C6.
Super gran artículo, gracias por todas estas informaciones.
Estoy planeando construir mi nas. Como el consumo de energía es el tema principal, ¿qué piensa usted acerca de la siguiente construcción (pero estoy un poco noob sobre el sistema y lo que es posible y / o la limitación de un chip tan bajo tdp)?
Asrock N100M micro ATX (con el nuevo Intel® Quad-Core Processor N100 (hasta 3.4 GHz) con un tdp de 6W. Como sólo hay 2 puertos sata, la idea es añadir una tarjeta SAS HBA con 8 puertos SATA adicionales en la ranura 1 x PCIe 3.0 x16. Para el almacenamiento sería 1 M2 (el de la placa base) para TrueNas OS, 2 SSD mirroring sata para VM, docker, ... y 8 discos HDD Seagate EXO 7200 rpm como paso final (2 al principio y luego evolucionando en base a la necesidad).
Para la fuente de alimentación, una Seasonic Focus PX 550W - Modular 80+ Platinum ATX y por último un único stick de 32GB de ram (no ECC).
Muchas gracias de antemano
En cuanto a la tarjeta SAS HBA, te sugeriría que miraras a ver qué consumo de energía en reposo están viendo otros en la tarjeta específica que estás considerando: las más populares a menudo consumen unos pocos vatios mientras no hacen absolutamente nada. No estoy seguro de cómo maneja *BSD las tarjetas, pero de las pocas que parecen tener ASPM activado por defecto, Linux parece desactivarlo en el kernel en algún momento debido a problemas. Dicho esto, esta es una situación en la que la ASRock N100 podría ir mejor que un combo CPU/tarjeta madre separado, ya que esperaría que fuera menos sensible a las implicaciones del estado-c de una tarjeta de expansión, aunque esto es sólo una suposición basada en lo que vi con mis tarjetas ASRock J4x05 y puede que no se aplique a la N100.
El Seasonic PX 550W parece una gran elección.
En general, parece una construcción sólida.
¿Tienes algún consejo para identificar las placas base que pueden lograr un bajo consumo de energía? La gente a veces recomienda placas base ITX, pero no he encontrado ninguna medida sobre cuántos vatios ITX vs ATX suele ahorrar. Ahora, ITX no habría funcionado para esta construcción, pero ATX no parece haber sido una fuente significativa de consumo de energía de todos modos. En general, parece muy difícil saber qué placas base consumen menos y cuáles no.
¿A qué te refieres con "la sobrecarga del silicio del núcleo E" y por qué intentaste evitarla? Entiendo que las CPU con núcleos E son probablemente más complejas, pero habría pensado que los núcleos E podrían conducir a un menor uso de energía cuando la CPU está haciendo tareas no intensivas a baja carga.
De nuevo, gracias por la información. Espero poder construir un sistema con una eficiencia energética similar. Ahora mismo tengo una placa base Gigabyte Z790 UD AX y un sistema i5-13500 que no puedo conseguir por debajo de 28W.
La ventaja de ITX es que tiende a limitar el número de componentes, pero no es estrictamente necesario - la semana pasada realmente reutilizado el "Intel i3-10320 en un Gigabyte H470M DS3H" que he mencionado al principio y lo bajó a 6 vatios en reposo (sin cabeza, sin teclado, en la placa Intel i219V 1GbE red sólo, c-estados en el BIOS, 3 Samsung SATA SSDs 840/860/870, Corsair RM850 fuente de alimentación, Ubuntu Server con powertop). Es una placa base muy utilitaria. No voy a hacer un escrito aparte porque la placa ya no está disponible, pero 6 vatios en esa placa MicroATX Gibabyte H470 y 7 vatios en la placa ATX ASUS H770 en este escrito son mis 2 mejores resultados hasta ahora y notablemente ninguna era ITX. Otra cosa de la que me acabo de dar cuenta: estas dos placas sólo tienen 6 fases de alimentación.
En cuanto a la "sobrecarga del silicio E-core", se pueden encontrar muchos detalles en https://www.hwcooling.net/en/the-same-and-yet-different-intel-core-i5-12400-duel-h0-vs-c0/ , pero intentaré resumirlos. El i5-12400 viene con 6 núcleos P y 0 núcleos E habilitados, lo que comúnmente se conoce como 6+0. Sin embargo, viene en 2 variantes: un paso a paso "C0" que originalmente era un 8+8 al que se le fusionaron los núcleos para convertirse en un 6+0, y un paso a paso "H0" que se fabricó directamente como un 6+0 y nunca tuvo ningún hardware de núcleo E en su interior para empezar. En las pruebas (página 5 de ese artículo), el C0 consumía hasta 16 vatios más que el H0 dependiendo del benchmark, incluyendo casi 11 vatios más en reposo. Ahora bien, siempre es posible que la muestra del C0 tuviera otros problemas que causaran fugas de energía, o que hubiera alguna otra variable en juego, pero en cualquier caso a los dos chips que tenían hardware E-Cores físico en su interior no les fue bien en la prueba en reposo.
Dado que me centro en un consumo en reposo extremadamente bajo para la mayoría de mis sistemas, no puedo justificar la compra de ninguno de los chips combinados P/E-core hasta que no vea datos que demuestren que los chips con núcleos E consumen menos de 10 vatios en reposo. Y aún no lo he visto. Esta es un área en la que Intel está muy amenazada en la actualidad: los mini PC de AMD están bajando ahora a unos 6-7 vatios de consumo en reposo para un Ryzen 9 7940HS ( https://youtu.be/l3Vaz7S3HmQ?t=610 ) y si AMD lleva este tipo de diseño de APU al escritorio o alguien como ASRock empieza a empaquetar algunos de estos impresionantes chips HS en una placa base personalizada, Intel podría perder rápidamente el mercado de bajo consumo en reposo.
Veo que la placa base que compré probablemente no sea la ideal (anuncia muchas fases).
Dicho esto, incluso si tu placa tuviera un montón de MOSFETs ineficientes, el consumo de 28 vatios que dices que estás teniendo parece un poco alto, a menos que tengas algún óxido girando o una tarjeta PCIe que malgaste energía. ¿Has comprobado si estás llegando a los estados de potencia C6 o mejores? Recuerda que cuando puse la ASM1166 en la ranura PCIe principal estaba limitado a C2 y consumía 22 vatios.
Efectivamente tienes razón en que los 28 W que compartía no eran lo mejor que se podía conseguir. Cometí el error de pensar que desconectando los cables SATA de mis discos duros los dejaría apagados. Como es obvio en retrospectiva, también hay que desconectarlos de la fuente de alimentación. Además, tenía un montón de periféricos conectados al PC que no sabía que consumirían energía (en particular, un monitor conectado marca una gran diferencia). Después de desconectar todos los discos duros y todos los periféricos obtengo lecturas en el rango de 8-10W.
Con la esperanza de hacer de esto un punto de datos útil para los demás voy a compartir algunos detalles más. La CPU es un i5-13500 en una placa base Gigabyte Z790 UD AX. La única cosa conectada es un SSD SATA y un único stick de memoria. La fuente de alimentación es una Corsair RM850x de 850W. El sistema alcanza C8 e incluso C10. Se podrían hacer algunas cosas más para reducir el consumo. Estaba midiendo mientras estaba en ralentí en GNOME (supongo que no tener ningún DE en ejecución ahorrará un poco de CPU), tengo dos ventiladores de CPU que están funcionando lentamente incluso a bajas temperaturas, el sistema está en WiFi (supongo que ethernet consume menos energía), y no he desactivado los LEDs de la carcasa ni el HD Audio.
Ahora estoy muy contento con el nivel de consumo de energía. Tal vez, una conclusión es que los núcleos E de Intel no afectan mucho al consumo en reposo, al menos en esta CPU. El único problema que tengo ahora es que el sistema es inestable y se reinicia esporádicamente 😭. Creo que he reducido el problema a una CPU defectuosa o una placa base defectuosa (he intentado reemplazar la fuente de alimentación y memtest86 + dice que la memoria está bien). La empresa donde compré las piezas afirma que ambas están bien, pero a menos que encuentre otra solución intentaré sustituir la CPU y la placa base por piezas de gama baja: un i3 de 13ª generación y una placa base Asus B760M-A. Si eso soluciona el problema, con suerte podré devolver las otras piezas; en el peor de los casos, utilizaré las piezas económicas para un servidor y las piezas de gama alta para una estación de trabajo.
Actualmente estoy probando un ASUS TUF GAMING B760M-PLUS WIFI D4 (12+1 DrMos) y en reposo, con el monitor y USB (ratón, teclado) suspendidos, el medidor de potencia muestra 6,7-8,1 W. El resto del sistema:
- i5 13500
- 2 x 16 GB 3600 MHz (equipo 1)
- 1 TB KC 3000
- RM550x 2021
- 2 ventiladores de 120 mm a 450 rpm
- códec de audio activado
- WiFi apagado
Arch Linux + módulo RTL8125 (mi router no soporta EEE)
Con la tarjeta Realtek desactivada, el medidor de potencia muestra 6,4 - 6,7 W
Estados del PC con LAN
C2 (pc2) 0,7%
C3 (pc3) 1,3%
C6 (pc6) 41,1%
C7 (pc7) 0,0
C8 (pc8) 0,0%
C9 (pc9) 0,0
C10 (pc10) 55,8
Estados de PC sin LAN
C2 (pc2) 0,6%
C3 (pc3) 0,9%
C6 (pc6) 0,0%
C7 (pc7) 0,0%
C8 (pc8) 0,0%
C9 (pc9) 0,0%
C10 (pc10) 97,8
Tuve resultados similares en un B660 AORUS MASTER DDR4 (16+1+1).
Actualmente estoy ejecutando un off-lease quanta 1u que agarré de ebay justo antes de covid golpeó y es el rendimiento de un solo núcleo es realmente mostrando su edad. También se pone al ralentí en 80W >.<
Me gustaría compartir mi experiencia con mi nuevo PC 12-14 W.
Acabo de construir sin ventilador mini-ITX PC. El caso es también un enfriador pasivo - AKASA Maxwell Pro y en el interior es AMD Ryzen 5600G (Zen 3, 65W TDP), Gigabyte B550I AORUS PRO AX (bios FB), 1x 16GB DDR4 (planeo actualizar a 2x32GB), 1x 2TB Samsung 980Pro m.2 SSD. Está alimentado por 12V AC / DC fuente de alimentación de AKASA (máx. 150W) y Inter-Tech MINI-ITX PSU 160 W.
Consumo de energía en reposo de 12-14 W para todo el PC con Windows 10 (medido en el lado de CC, el plan de energía está equilibrado, pero activé ASPM, Pstates y C-states en la bios y el ahorro de energía PCIe en la configuración avanzada del plan de energía de Windows).
Bajo carga (Cinebench R23) 61-65W. Actualmente estoy haciendo undervolting para tener mejor consumo y temperaturas.
----------
mi pequeño home-lab & NAS tiene menos de 2W de consumo de energía en reposo ‼️
Recomiendo Odroid H3 (H3 +) con BIOS 1.11 y Debian 11 + DietPi + kernel 6.0.0 (o más reciente) + ajustes aplicados a través de powertop tiene consumo de energía en reposo sólo 1,2 - 1,5W (en comparación con 2,7W para RPi 4 - fuente) ⚡️(con mi configuración: 1x 16GB RAM y 1x SATA SSD).
See: https://i.ibb.co/7QD390m/H3-1-10-6-0-0-sata-idle.gif
El tamaño máximo de memoria es de 64 GB RAM y tiene 1x puerto m.2, 2x SATA 3, y 2x LAN 2.5Gbps. Es mucho más rápido que Raspberry Pi 4 con menor consumo de energía en reposo. En carga puede consumir 20W (+depende de los dispositivos conectados).
Si necesitas más puertos SATA entonces el puerto m.2 puede ser expandido a 5x SATA usando esto: https://wiki.odroid.com/odroid-h3/application_note/m.2_to_sata_adapter
Actualmente estoy luchando para conseguir que mi nuevo NAS consuma menos de 40 W en reposo sin unidades de datos, y no consigo entender por qué consume tanto. Mi ordenador de sobremesa para juegos consume menos.
Es un Asrock H670M-ITX/ac con un i3-12100, 8 GB de RAM, fuente de alimentación be quiet de 400 W. Originalmente usaba un Kingston NV2 NVMe para el SO, pero descubrí que reemplazarlo por un SSD SATA disminuía la potencia en reposo en unos 10W (50W->40W).
Según powertop, los núcleos entran en C7 sin problemas, pero el paquete se niega a salir de C2. No estoy seguro de lo importante que es.
Seguiré trabajando en ello, con tu artículo como referencia :)
Matt,
Tus articulos me inspiraron asi que compre la misma placa base ( prime h770 plus d4 ) y procesador similar etc. Yo era capaz de llegar a 12-14w mínimo. Feliz con eso por ahora, pero el 8w adicional debido a que el paquete no llega a c8 más ha sido muy frustrante, ¿has visto algo similar en su construcción?
Varias investigaciones han demostrado que se trata de un problema de controladores con RealTekLAN. Si descarga e instala los controladores para el chipset 8125 desde el sitio Realtech, puede llegar a c10 como antes.
deberías considerar una fuente de alimentación diferente como la Corsair RM550x (2021) o la BeQuiet 12M 550W. La Corsair es la mejor para configuraciones de bajo consumo, pero es muy difícil de conseguir. Reducirá aún más el consumo de energía (de 2 a 4 vatios).
Este y otros ajustes se mencionan en este tema:
https://forums.unraid.net/topic/98070-reduce-power-consumption-with-powertop/
Tristemente, este fue un cambio intencional al controlador Realtek contenido en el kernel. Asegura que L1 está desactivado en prácticamente todos los adaptadores Realtek, aparentemente en respuesta a un número de adaptadores Realtek que experimentan problemas de estabilidad cuando estos estados de bajo consumo están habilitados. En mi sistema de pruebas actual, esto se traduce en un aumento de potencia de 4 vatios al ralentí con la pantalla apagada, ya que el sistema ya no desciende por debajo de C3.
Probar el driver de Realtek que enlazó Tseting es probablemente la solución más fácil por ahora, aunque no tengo ni idea de cómo funcionará en versiones del kernel no soportadas y personalmente no soy un gran fan de los módulos del kernel. Lo pegaré aquí por conveniencia: https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software
Hay, por supuesto, una solución más difícil - para aquellos familiarizados con la compilación del kernel, revertir el cambio en el diff anterior restaurará L1/L1. 1 en los dispositivos RTL8168h/8111h, RTL8107e, RTL8168ep/8111ep, RTL8168fp/RTL8117, y RTL8125A/B (cualquier dispositivo anterior ya lo tenía deshabilitado) - si quieres permitir L1.2 puedes forzar rtl_aspm_is_safe() para que devuelva true, aunque en mi sistema de pruebas no proporcionó ningún beneficio sobre L1.1.
A menos que los desarrolladores del kernel cambien de opinión, parece que las NIC de Intel son la única opción viable en el futuro. Las NIC Intel 1G han sido en general muy sólidas. Preocupantemente, descubrí que deshabilitar la NIC Realtek en mi placa MSI no la desconecta completamente (sigue atascada en C3), por lo que comprar una placa con una NIC Realtek con planes de deshabilitarla y usar una tarjeta de expansión de red Intel puede ser arriesgado. Vale la pena señalar que en el futuro hay una bandera vendedores pueden establecer en un adaptador 8125A / B para indicar L1.2 está probado y permitido que el kernel de Linux respetará, pero no sé si se ha hecho en cualquier placas base o tarjetas de expansión.
gracias por la información detallada que has compartido.
Su configuración me ha inspirado y he comprado el "Prime h770-plus" incluyendo 4800 DDR Ram.
Desafortunadamente también tengo problemas con los SSD NVME cuando aspm está habilitado en la bios (y PCI express clock gating). Las soluciones para bloquear ciertos modos de ahorro de energía de los WD no ayudaron. Probé el SN750 (1tb) y el SN850X(2tb).
¿Todavía puedes recomendar el Crucial P3 o también falla regularmente con referencia a los problemas ASPM?
¿Quién tiene qué otro NVME en la placa funcionando de forma fiable con ASPM activado?
¿Se ejecuta la configuración de forma productiva en funcionamiento continuo?
Adicionalmente, he encontrado que un 840pro (256gb) al menos en SATA1 evita que el sistema baje de C3. Un Crusial Force GT (128GB), en cambio, funciona hasta C8.
El problema con la NIC Realtek lo solucioné quitando el check en el kernel.
Gracias y saludos
Ahora he probado un Samsung 990 pro. Por desgracia, esto todavía conduce a la ya conocida nvme aspm errores.
¿Alguien más tiene alguna idea?
Realmente no puede ser la fuente de alimentación (me parecería muy extraño) porque aquí se está usando temporalmente una Corsair cx 750.
Si nada ayuda, ¿alguien tiene una buena placa alternativa?
De alguna manera me pongo el pie en la boca con demasiada frecuencia cuando se trata de hardware ;-(.
"¡Supongo que muchos dolores de cabeza podrían haberse evitado si hubieras encontrado una placa con más puertos sata!"
Eso no es cierto por defecto - porque se reduce a lo que SATA-Controlador se utiliza y / o cómo estos puertos están conectados. Hay muchas probabilidades de que utilice un controlador integrado y, concretamente para el modelo N5105, existe una variante NAS muy conocida con 6 puertos SATA que venden Kingnovy y Topton.
La negra utiliza JMS585 y la verde ASM1166; la negra se queda en C3 y la verde puede llegar hasta C8 (yo mismo lo he comprobado porque tengo la variante verde). Si yo necesitara algo más que un servidor de copia de seguridad, entonces yo iría la ruta aquí - con un Intel mucho más potente en LGA1700.
Un buen ejemplo de lo bajo que podría ir con el consumo de energía en reposo es el Odroid H3 - <2W en reposo con 2x discos duros a través de SATA en Spindown ... sin embargo, tan pronto como se agrega (el mal) componentes que se acelerará rápidamente - comprobar las estadísticas de consumo de energía aquí:
https://github.com/fenio/ugly-nas
TLDR: Al final su sipping más energía que su construcción aquí - y tengo que añadir que anteriormente era dueño de un Odroid H2, que frito su carril 5V y tiró de los (caros) SSDs con él ... cada desde entonces me quedo lejos para el máximo absoluto del menor consumo de energía en combinaciones exóticas como el Odroid H3.
Yo diría que al final todo se reduce a - lo práctico que todo es vs los niveles de consumo de energía.
Dicho esto estoy impresionado con esta construcción aquí - 7W ralentí con una PSU de 750W es bastante algo.
Actualmente estoy actualizando mi servidor doméstico de j3455 a 11400.
Al cambiar el hardware me encontré con un problema extraño:
I5-11400+2x8Gb 2666 ddr4 +ASUS Prime B560M-A (última bios) +asm1166.
Si arranco desde USB sin ninguna unidad sata conectada el estado del paquete C llega a c8.
Si arranco desde USB con una unidad SATA conectada a la controladora sata integrada, el estado del paquete C sólo alcanza C2 (+4W).
Si arranco desde USB con una unidad SATA conectada a una pcie asm1166 el estado del paquete c alcanza c8.
Así que a mí me parece que el controlador SATA b560 parece tener problemas con el ahorro de energía. Incluso si tengo L1 habilitado para todo y corrió powertop ajuste no va a ir por debajo de c2.
¿Tiene usted una idea de lo que podría causar el controlador SATA b560 causa 4w más?
Al final podría ser más barato añadir otro ASM1166 en lugar del controlador integrado :D
Esta habilitado, tambien lo intente con deshabilitado, pero no cambio el consumo de energia ni los C-States. (dejándolo habilitado por ahora)
En la BIOS puedo especificar si M.2_2 está usando SATA o PCIE. Según la BIOS y el manual, SATA6G_2 sólo se bloquea si M.2_2 está configurado como SATA.
Pero he conectado el ASM1166 en M.2_2 y lo he configurado como PCIE. He confirmado que todos los puertos SATA de la placa funcionan como se espera con esta configuración.
Hotplug está desactivado para todos los puertos por defecto. Lo activé para ver si cambiaba algo, pero no lo hizo. Por ahora lo dejo deshabilitado.
He arrancado desde USB y probado diferentes dispositivos: 2x SSDs (Emtec y Samsung antiguo), 2x 3.5" HDDs (WD y Seagate) e incluso 1x LG DVD Burner.
Parece que no importa qué tipo de deviecs está conectado.
Siempre es lo mismo, tan pronto como me conecto un dispositivo a través de SATA a bordo C2 es máxima.
Para verificar esto arranqué desde una memoria USB con dispositivos SATA conectados, y luego los desconecté todos mientras arrancaba.
Tan pronto como el último dispositivo SATA se desconecta físicamente del sistema en vivo va a pc6 inmediatamente y pc8 poco después.
Al volver a conectar todos los dispositivos SATA se queda en PC6/8 pero también dmesg no reconoce el replug (lo más probable debido a hotplug desactivado)
Voy a rastrear a través de dmesg registros de arranque, tal vez algo interesante aparece.