Desactivando y Activando procesadores en Linux


root@curaguaca ~]# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz
stepping        : 10
cpu MHz         : 800.000
cache size      : 3072 KB
physical id     : 0
siblings        : 2
core id         : 0
cpu cores       : 2
apicid          : 0
initial apicid  : 0
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
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 lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida tpr_shadow vnmi flexpriority
bogomips        : 4789.94
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz
stepping        : 10
cpu MHz         : 800.000
cache size      : 3072 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
apicid          : 1
initial apicid  : 1
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
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 lm constant_tsc arch_perfmon pebs bts rep_good pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm ida tpr_shadow vnmi flexpriority
bogomips        : 4790.63
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:
Más concretamente: 1 x Intel Core2 Duo CPU P8600 a 2.4 GHz. Aunque también lo he probado en un MSI Wind con un dual core Atom. Nop, en el trabajo no me han dejado experimentar con los servidores :(
Lo primero que tienes que saber es cuántas CPUs tienes, eso es fácil:
[root@curaguaca ~]# cat /proc/interrupts | grep CPU
CPU0       CPU1
Si ahora comprobamos nuestro comando dmesg, veremos que efectivamente tenemos 2 cores:
CPU0 attaching NULL sched-domain.
CPU1 attaching NULL sched-domain.
CPU0 attaching sched-domain:
domain 0: span 0-1 level MC
groups: 0 1
domain 1: span 0-1 level CPU
groups: 0-1 (__cpu_power = 2048)
CPU1 attaching sched-domain:
domain 0: span 0-1 level MC
groups: 1 0
domain 1: span 0-1 level CPU
groups: 0-1 (__cpu_power = 2048)
También es aconsejable revisar el messages de nuestro sistema, para ello, el comando:
tail /var/log/messages.log
nos viene muy bien en otra consola.
Siguente paso: desactivar un core. Tecleamos:
echo 0 > /sys/devices/system/cpu/cpu1/online
Y ya está, desactivado el core #1. Para comprobarlo, miramos la salida del comando dmesg y vemos:
SMP alternatives: switching to UP code
CPU0 attaching NULL sched-domain.
CPU1 attaching NULL sched-domain.
CPU0 attaching NULL sched-domain
Y el messages nos muestra:
Dec  1 11:37:37 curaguaca kernel: CPU 1 is now offline
Dec  1 11:37:37 curaguaca kernel: SMP alternatives: switching to UP code
Yo tengo la costumbre de tener el gkrellm ejecutándose y veo que no ha desaparecido el monitor para la CPU1, pero sí veo que ya no muestra gráfica ;)
Ahora queremos activar de nuevo el core que hemos desactivado, a ver, ¿a quién se le ocurre cómo hacerlo? Efectivamente:
echo 1 > /sys/devices/system/cpu/cpu1/online
Y el dmesg nos dice:
SMP alternatives: switching to SMP code
Booting processor 1 APIC 0x1 ip 0x6000
Initializing CPU#1
Calibrating delay using timer specific routine.. 4790.68 BogoMIPS (lpj=7980290)
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 3072K
CPU: Physical Processor ID: 0
CPU: Processor Core ID: 1
mce: CPU supports 6 MCE banks
CPU1: Thermal monitoring enabled (TM2)
x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x7010600070106
CPU1: Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz stepping 0a
CPU0 attaching NULL sched-domain.
Switched to high resolution mode on CPU 1
CPU0 attaching sched-domain:
domain 0: span 0-1 level MC
groups: 0 1
domain 1: span 0-1 level CPU
groups: 0-1 (__cpu_power = 2048)
CPU1 attaching sched-domain:
domain 0: span 0-1 level MC
groups: 1 0
domain 1: span 0-1 level CPU
groups: 0-1 (__cpu_power = 2048)
Y su amigote el messages nos dice que:
Dec  1 11:42:06 curaguaca kernel: SMP alternatives: switching to SMP code
Dec  1 11:42:06 curaguaca kernel: Booting processor 1 APIC 0x1 ip 0x6000
Dec  1 11:42:06 curaguaca kernel: Initializing CPU#1
Dec  1 11:42:06 curaguaca kernel: Calibrating delay using timer specific routine.. 4790.68 BogoMIPS (lpj=7980290)
Dec  1 11:42:06 curaguaca kernel: CPU: L1 I cache: 32K, L1 D cache: 32K
Dec  1 11:42:06 curaguaca kernel: CPU: L2 cache: 3072K
Dec  1 11:42:06 curaguaca kernel: CPU: Physical Processor ID: 0
Dec  1 11:42:06 curaguaca kernel: CPU: Processor Core ID: 1
Dec  1 11:42:06 curaguaca kernel: mce: CPU supports 6 MCE banks
Dec  1 11:42:06 curaguaca kernel: CPU1: Thermal monitoring enabled (TM2)
Dec  1 11:42:06 curaguaca kernel: x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x7010600070106
Dec  1 11:42:06 curaguaca kernel: CPU1: Intel(R) Core(TM)2 Duo CPU     P8600  @ 2.40GHz stepping 0a
Bieeeeeeeeeen :) Ya tenemos el core otra vez en su sitio, ¿gkrellm? Me vuelven a aparecerlos colorines de las gráficas. Ah, la vida es bella ;) Os pongo una captura de cuando he desactivado y de cuando he vuelto a activar el core:
Desactivando CPU1
DESACTIVANDO CPU1
Y ahora la volvemos a activar:
Activando CPU1
ACTIVANDO CPU1


Para que ste blog siga creciendo:


Visitenos en:

Instagram