Eleccion de procesador

por | 23 marzo, 2020

Estaba pensando en elegir con la mira en la placa madre y el proce, pero al parecer es mejor hacerlo al revés

Pero antes recordemos los objetivos:

  • Bajo consumo
  • FreeNas
  • soporte ECC (por FreeNAS)
  • Plataforma Intel (por FreeNAS)

Y continuando con el proyecto «NAS» ahora veremos las características que hay que tener en cuenta para elegir un buen procesador

Ahora el proyecto ha sufrido una pequeña modificación donde ya no será solo un servidor NAS sino que un pequeño servidor de visualización donde usare PCIE passthoug para el NAS y para un router o firewall. Adicional unas 4 vm extra por lo que se añaden los siguientes requerimientos:

  • Soporte AES-NI (aunque ya estaba debido a los requerimientos de ZFS)
  • soporte de Virtualización (que casi todos los procesadores actuales traen por defecto)
  • soporte para IOMMU

Una vez definido todo esto tenemos cono características relevantes al momento de elegir un procesador:

Performance

Este es el top y lo más básico a revisar en un proce, su performance, existen varias páginas de benchmark o comparativas que nos pueden ayudar.
En este post (y creo que también en el futuro) no entrare en mayores detalles en cuanto a este punto ya que siento que se sale demasiado del foco del blog

Gráficos

Cuando montamos un equipo casero por lo general (y sobre todo si es un equipo gamer) compramos una tarjeta gráfica dedicada, sin embargo en entornos de servidores por lo general no se usan este tipo de tarjetas ya que no se requiere mayores prestaciones en vídeo.

Es por este motivo que toma relevancia en saber si el procesamiento gráfico vendrá integrado en el procesador o no, pudiendo estar integrado directamente en la placa madre

en caso que no tengamos ningún procesador gráfico tenemos que considerar 1 puerto PCIe para una tarjeta de video

Soporte Memorias

Tanto nuestro procesador como la placa madre deben ser compatibles, en mi caso me tope con que el procesador que tengo en la mira soporta tanto DDR3L-1333/1600 Mhz y DDR4-1866/2133 Mhz, sin embargo la placa soporta 2400/2133/1866/1600 MHz ECC DDR4, si compro una ram ddr4 de 1600Mhz el equipo dará problemas, en mi caso compraré ddr4 de 2400 Mhz y el equipo funcionará a 2133 Mhz ya que el limite será el procesador

Soporte lineas PCIe

Este punto no lo encuentro tan relevante ya que el total de lineas PCIe se reparten entre el procesador y el chipset de la placa madre pero para algunas características especificas es necesario saber este dato

Soporte instrucciones

Para utilizar la virtualización este paso es fundamental ya que aquí nos indica si tiene soporte o no para la virtualización la gran mayoría de procesadores existentes tienen la posibilidad de virtualización pero siempre hay que asegurarse, ademas existen varias opciones que nos pueden ayudar en una tarea u otra (en mi caso como como IOMMU).

Si queremos conocer las características que soporta nuestro equipo actual en linux tenemos 2 opciones dmidecode y /proc/cpuinfo

sudo dmidecode -t processor
# dmidecode 3.0
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.

Handle 0x0400, DMI type 4, 40 bytes
Processor Information
        Socket Designation: CPU1
        Type: Central Processor
        Family: Xeon
        Manufacturer: Intel
        ID: D7 06 02 00 FF FB EB BF
        Signature: Type 0, Family 6, Model 45, Stepping 7
        Flags:
                FPU (Floating-point unit on-chip)
                VME (Virtual mode extension)
                DE (Debugging extension)
                PSE (Page size extension)
                TSC (Time stamp counter)
                MSR (Model specific registers)
                PAE (Physical address extension)
                MCE (Machine check exception)
                CX8 (CMPXCHG8 instruction supported)
                APIC (On-chip APIC hardware supported)
                SEP (Fast system call)
                MTRR (Memory type range registers)
                PGE (Page global enable)
                MCA (Machine check architecture)
                CMOV (Conditional move instruction supported)
                PAT (Page attribute table)
                PSE-36 (36-bit page size extension)
                CLFSH (CLFLUSH instruction supported)
                DS (Debug store)
                ACPI (ACPI supported)
                MMX (MMX technology supported)
                FXSR (FXSAVE and FXSTOR instructions supported)
                SSE (Streaming SIMD extensions)
                SSE2 (Streaming SIMD extensions 2)
                SS (Self-snoop)
                HTT (Multi-threading)
                TM (Thermal monitor supported)
                PBE (Pending break enabled)
        Version:        Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz
        Voltage: 1.2 V
        External Clock: 7200 MHz
        Max Speed: 3600 MHz
        Current Speed: 2300 MHz
        Status: Populated, Enabled
        Upgrade: Socket LGA2011
        L1 Cache Handle: 0x0700
        L2 Cache Handle: 0x0701
        L3 Cache Handle: 0x0702
        Serial Number: Not Specified
        Asset Tag: Not Specified
        Part Number: Not Specified
        Core Count: 6
        Core Enabled: 6
        Thread Count: 12
        Characteristics:
                64-bit capable
                Multi-Core
                Hardware Thread
                Execute Protection
                Enhanced Virtualization
                Power/Performance Control

Handle 0x0401, DMI type 4, 40 bytes
Processor Information
        Socket Designation: CPU2
<--->

Como pueden ver en el output los «flags» indican todas las opciones que posee este procesador

También lo podemos hacer con un sudo cat /proc/cpuinfo | grep flags

#sudo cat /proc/cpuinfo | grep flags
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm ida arat pln pts

en un datasheet de cualquier procesador tenemos el apartado de tecnologías avanzadas como podemos en el ejemplo de abajo usando este modelo Xeon E5-2630

si quieren ver un listado con todos los flags (o tecnologías) soportadas pueden visitar este link del kernel Linux, no voy a dar la explicación larga de cada uno de los flags pero si vamos a convertir el «texto largo» a flag con una breve descripción (al menos de lo que encuentre), o sea, desde la pagina de intel vamos a descubrir a que flag hace mención cada una de las tecnologías avanzadas y en que afecta al equipo. Para esto pondré primero la característica seguido por el flag entre paréntesis y finalizando con la descripción.

Hyper-Threading Intel® (HT): Esta tecnología permite al procesador operar de forma mas rápida, gracias a esta tecnología es que tenemos los «hilos»

virtualización Intel® (VT-x) (VME): como imaginaran, esta característica tiene que estar si o si cuando queremos virtualizar, existen algunas características adicionales para un soporte completo de virtualizacion (que ya vamos a ver) pero esta es la base

virtualización Intel® para E/S dirigida (VT-d) (VMX): permite la asignación directa de máquinas virtuales a funciones virtuales, incluyendo la E/S de disco IOMMU  (I/O Memory Management Unit) o SR-IOV (Single-Root Input/Output Virtualization)

Intel® VT-x con tablas de páginas extendidas (EPT_AD):

Intel® 64 : La tecnología que permite el uso de mas de 4Gb de ram

Conjunto de instrucciones:

Extensiones de conjunto de instrucciones: son un listado de funciones que puede realizar el procesador pudiendo ser sse (XMM) sse2 (XMM2) (SSE4A) «pni» SSE-3 (XMM3) Supplemental SSE-3 (SSSE3) «sse4_1» SSE-4.1 (XMM4_1) «sse4_2» SSE-4.2 (XMM4_2)

Intel SpeedStep® (EST) : Es una tecnología de administración de la energía donde el voltaje aplicado y la velocidad del reloj de un microprocesador se mantienen en los niveles mínimos necesarios hasta que se necesite más energía de procesamiento

Estos son los que he encontrado algo de información, me quedan en el tintero:

  • Estados de inactividad
  • Intel SpeedStep® mejorada
  • monitoreo térmico
  • Intel® Flex Memory Access
  • Intel® Identity Protection
  • Nuevas instrucciones de AES Intel®
  • Intel® Trusted Execution

y ya con esto doy por finalizado este post, se que le faltan cosas y quizás mas adelante las vaya agregando pero para lo que yo necesito creo que esta bien

Fuentes:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *