¿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.
¿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.
Respuestas:
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=1
a los parámetros. Imagen de comida aleatoria:
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=1
a 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.
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
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".
¿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.