¿Es posible deshabilitar una CPU (no un núcleo)?

10

¿Es posible deshabilitar una CPU, no un núcleo? Quiero hacer una prueba para verificar si el rendimiento puede hacer una gran diferencia o no.

Estoy usando Ubuntu 10.10.

LeoYuan 袁力皓
fuente

Respuestas:

10

Además de hacer esto en tu BIOS, grub tiene una opción llamada maxcpus.

Puede editar esta opción al seleccionar su opción de arranque grub agregando maxcpus=1a los parámetros. Imagen de comida aleatoria:

ingrese la descripción de la imagen aquí

Elija 'e' y accederá a una línea de comando donde puede agregar opciones.

También puede crear una opción de inicio permanente en grub al hacer una copia de su opción de inicio actual y agregarla maxcpus=1a los parámetros de inicio. Puede nombrar esto 'Ubuntu, kernel 2.5.12-9-386 (1 cpu)' y tenerlo entre las otras opciones de arranque como se muestra en la imagen.

Puede verificar la ejecución en 1 CPU emitiendo:

cat /proc/cpuinfo | grep processor Esto debería mostrar algo como esto:

procesador: 0
procesador: 1

Y la segunda línea debería desaparecer después de arrancar con 1 CPU.

Rinzwind
fuente
1
¡Esta pregunta también sería una broma práctica muy mala! : D
Alvar
¿Qué sucede si configura maxcpus = 0? : P
crazy2be
@Rinzwind Hice exactamente lo que dijiste, pero el resultado parece extraño, obtuve información de 12 procesadores antes de agregar "maxcpus = 1" a los parámetros al hacer grepping, pero solo obtuve 1 información de procesador después de la modificación, parece que solo hay un núcleo en los 12 núcleos están activados. Nota: Mi computadora tiene dos CPU de seis núcleos.
LeoYuan 袁力皓
@ crazy2be adivinando: el primer procesador se llama 0, ¿entonces terminas usando uno? : D
Rinzwind
@ LeoYuan88 袁力皓 ¿puede editarlo la salida de cat / proc / cpuinfo | procesador grep antes y después de arrancar con maxcpus = 1?
Rinzwind
7

Puede deshabilitar dinámicamente las CPU mediante /sys/devices/system/cpu/cpuN/online, por ejemplo, para deshabilitar la CPU 1, use:

echo 0 | sudo tee /sys/devices/system/cpu/cpu1/online

y para volver a habilitar, use:

echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online
Colin Ian King
fuente
Esto parece deshabilitar un lcore, no una CPU. Tengo uno de estos directorios para cada núcleo lógico en mi sistema.
sudo
1

Siempre puede desconectar la CPU de su zócalo. Es fuerza bruta, pero está garantizado que obtendrá la prueba que desea, y no tiene que preocuparse si el kernel / BIOS / cualquier interruptor realmente está haciendo lo que espera que esté haciendo.

Mi empresa tiene grandes instalaciones de granjas de servidores en varios lugares del mundo. En nuestro laboratorio, a veces eliminaremos las CPU de los zócalos para tal prueba.

Hay una variación interesante en esta prueba que puede hacer con sistemas NUMA de múltiples CPU . En esos tipos de placas base, puede eliminar todos los DIMM de memoria controlados por una CPU física. El sistema aún se iniciará bien, y luego puede ejecutar pruebas con su aplicación anclada a varios núcleos que le permitirán medir los efectos de la memoria "local" o "remota".

David Gardner
fuente
Lo siento, todavía no sé cómo desconectar la CPU de su zócalo, ¿podría mostrarme cómo hacer el trabajo?
LeoYuan 袁力皓
0

¿Le gustaría ver el rendimiento de una aplicación multiproceso junto con varios núcleos? Si ese es el caso, puede usar la utilidad de conjunto de tareas. Supongo que tienes una máquina NUMA. Puede instalar la utilidad numactl y al usarla puede encontrar qué núcleos corresponden a qué CPU. Por ejemplo, su máquina tiene dos CPUS (chips) de cuatro núcleos. Al utilizar la utilidad de conjunto de tareas, puede crear núcleos de una CPU como conjunto y asignarlos a su aplicación. Luego, su aplicación usa solo una CPU / Chip (cuatro núcleos). Avíseme si necesita más información.

samarasa
fuente