Quiero deshabilitar 3 núcleos de CPU y ejecutar mi procesador en un solo núcleo. Tengo comando utilizado: maxcpus=1
. Pero después de esto ejecuté este comando ls /sys/devices/system/cpu
. Aún se nota cpu0,cpu1,cpu2,cpu3
.
También probé: echo 0 > /sys/devices/system/cpu3/online
pero me sale el siguiente error: no such file or directory
.
maxcpus=1
comando ? ¿Pusiste esa cadenagrub.cfg
como una opción de arranque? (Actualice su pregunta en lugar de responderla en los comentarios).maxcpus=1
) varía según la distribución. Además, la/sys
ruta que tiene es simplemente la incorrecta, la ruta correcta es/sys/devices/system/cpu/cpu3/online
.Respuestas:
Como Patrick ha indicado en un comentario , entendiste
/sys
mal el camino .Si desea apagar todas las CPU excepto
cpu0
:Escribir
maxcpus=1
en un indicador de comandos de shell no tiene ningún efecto. Más precisamente, establece la variablemaxcpus
al valor1
en ese shell, que no tiene ningún otro efecto. Puede establecer el número de CPU en el momento del arranque pasandomaxcpus
como parámetro del núcleo . Para eso, debe cambiar la configuración del cargador de arranque (por ejemplo, para cambiar la línea de comando del núcleo en U-Boot).fuente
/sys/devices/system/cpu/online
y./offline
para controlar todos los núcleos.core
y apagar?no necesariamente apaga o deshabilita los núcleos.
que usaría cpusets y taskset
http://man7.org/linux/man-pages/man7/cpuset.7.html
En resumen, si tiene 1 CPU con 6 núcleos, configuraría cpusets e iniciaría su proceso en un cpuset que está configurado en un solo núcleo, por ejemplo, core # 3. Si se tratara de un proceso paralelo, todo se limitaría a ese núcleo, de modo que si iniciara 4 procesos en un cpuset determinado con un solo núcleo definido, cada uno de los 4 procesos obtendría un 25% de utilización de CPU en el núcleo # 3.
Partiendo de eso, lo que generalmente sucede es que un cpuset está configurado de tal manera que
también: https://linux.die.net/man/1/taskset
fuente