systemadmin.es > Hardware > Como buscar el numero de sockets y cores que tiene un sistema

Como buscar el numero de sockets y cores que tiene un sistema

Para hacernos una idea de la capacidad de un servidor es muy útil mirar en el /proc/cpuinfo de que equipo se trata. Pero desde allí no podemos ver realmente ni la cantidad de sockets ni el número real de cores.

Vamos a suponer un equipo como el siguiente:

# cat /proc/cpuinfo | grep "^processor"
processor	: 0
processor	: 1
processor	: 2
processor	: 3
processor	: 4
processor	: 5
processor	: 6
processor	: 7
processor	: 8
processor	: 9
processor	: 10
processor	: 11
processor	: 12
processor	: 13
processor	: 14
processor	: 15

A primera vista dispone de 16 cores, pero ¿ como podemos saber si son reales o esta habilitado el Hyper-Threading?

Anteriormente ya hemos visto como usar el dmidecode para, por ejemplo, ver los slots libres de RAM. Especificando el tipo 4 (processor) podemos ver estos detalles:

# dmidecode -t 4
# dmidecode 2.10
SMBIOS 2.6 present.

Handle 0x0400, DMI type 4, 40 bytes
Processor Information
	Socket Designation: CPU1
	Type: Central Processor
	Family: Xeon
	Manufacturer: Intel
	ID: FF FF FF FF FF FB FF BF
	Signature: Type 0, Family 6, Model 26, Stepping 5
	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 (Fast floating-point save and restore)
		SSE (Streaming SIMD extensions)
		SSE2 (Streaming SIMD extensions 2)
		SS (Self-snoop)
		HTT (Hyper-threading technology)
		TM (Thermal monitor supported)
		PBE (Pending break enabled)
	Version: Intel(R) Xeon(R) CPU           E5520  @ 2.27GHz
	Voltage: 1.2 V
	External Clock: 5860 MHz
	Max Speed: 3600 MHz
	Current Speed: 2266 MHz
	Status: Populated, Enabled
	Upgrade: Socket LGA1366
	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: 4
	Core Enabled: 4
	Thread Count: 8
	Characteristics:
		64-bit capable

Handle 0x0401, DMI type 4, 40 bytes
Processor Information
	Socket Designation: CPU2
	Type: Central Processor
	Family: Xeon
	Manufacturer: Intel
	ID: FF FF FF FF FF FB FF BF
	Signature: Type 0, Family 6, Model 26, Stepping 5
	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 (Fast floating-point save and restore)
		SSE (Streaming SIMD extensions)
		SSE2 (Streaming SIMD extensions 2)
		SS (Self-snoop)
		HTT (Hyper-threading technology)
		TM (Thermal monitor supported)
		PBE (Pending break enabled)
	Version: Intel(R) Xeon(R) CPU           E5520  @ 2.27GHz
	Voltage: 1.2 V
	External Clock: 5860 MHz
	Max Speed: 3600 MHz
	Current Speed: 2266 MHz
	Status: Populated, Idle
	Upgrade: Socket LGA1366
	L1 Cache Handle: 0x0703
	L2 Cache Handle: 0x0704
	L3 Cache Handle: 0x0705
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified
	Core Count: 4
	Core Enabled: 4
	Thread Count: 8
	Characteristics:
		64-bit capable

Podemos ver fácilmente el número de sockets con un grep:

# dmidecode -t processor | grep "Socket D"
	Socket Designation: CPU1
	Socket Designation: CPU2

A continuación podemos ver el número de cores reales con:

# dmidecode -t processor | grep "Core Count"
	Core Count: 4
	Core Count: 4

No me he cruzado con ningún sistema “capado”, pero también podemos ver el número de cores habilitados:

# dmidecode -t processor | grep "Core Enabled"
	Core Enabled: 4
	Core Enabled: 4

Finalmente, podemos ver si dispone de Hyper-threading:

# dmidecode -t processor | grep "HTT"
		HTT (Hyper-threading technology)
		HTT (Hyper-threading technology)

En el caso que este habilitado veremos que el Thread Count es mayor que el Core Count:

# dmidecode -t processor | grep "Thread"
	Thread Count: 8
	Thread Count: 8

5 comments to “Como buscar el numero de sockets y cores que tiene un sistema”

  1. Estupendo articulo, muchas gracias 🙂
    Para Solaris “prtdiag -v”

  2. En VPS que esten virtualizados con OpenVZ normalmente no podrás ver esas estadísticas ya que esta capado:

    # dmidecode -t processor | grep “Socket D”
    /dev/mem: Permission denied
    # dmidecode -t processor | grep “Core Count”
    /dev/mem: Permission denied
    # dmidecode -t processor | grep “Core Enabled”
    /dev/mem: Permission denied

  3. A través de /proc/cpuinfo también se puede ver esta información.
    El campo “physical id” indica el socket en el que se encuentra el procesador.
    Y el campo “siblings” indica el número de procesadores lógicos por procesador físico. Si comparamos este campo con “cpu cores” sabemos si tenemos o no hyperthreading. Si son iguales no hay hyperthreading. Si “siblings” dobla a “cpu cores” sabemos que hay hyperthreading, para este caso 2 hilos por núcleo.

  4. Tienes razón, no me había fijado en estos campos

    Muchas gracias por tu comentario!!!

  5. Tambien podeis utilizar el comando lshw, esta en los repos de casi cualquier distro 😛

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>