no necesariamente apaga o deshabilita los núcleos.
que usaría cpusets y taskset
http://man7.org/linux/man-pages/man7/cpuset.7.html
Un cpuset define una lista de CPU y nodos de memoria ...
El sistema de archivos cpuset es una interfaz de pseudo-sistema de archivos para el mecanismo cpuset del núcleo, que se utiliza para controlar la ubicación del procesador y la ubicación de la memoria de los procesos. Se suele montar en / dev / cpuset.
En los sistemas con núcleos compilados con soporte integrado para cpusets, todos los procesos están conectados a un cpuset, y los cpusets siempre están presentes. Si un sistema admite cpusets, tendrá la entrada nodev cpuset en el archivo / proc / filesystems. Al montar el sistema de archivos cpuset (consulte la sección EJEMPLO a continuación), el administrador puede configurar los cpusets en un sistema para controlar el procesador y la ubicación de la memoria de los procesos en ese sistema. De manera predeterminada, si la configuración de cpuset en un sistema no se modifica o si el sistema de archivos cpuset ni siquiera está montado, entonces el mecanismo cpuset, aunque está presente, no tiene ningún efecto sobre el comportamiento del sistema.
Las CPU de un sistema incluyen todas las unidades de procesamiento lógico en las que se puede ejecutar un proceso, incluidos, si están presentes, múltiples núcleos de procesador dentro de un paquete e Hyper-Threads dentro de un núcleo de procesador. Los nodos de memoria incluyen todos los bancos distintos de memoria principal; Los sistemas pequeños y SMP generalmente tienen un solo nodo de memoria que contiene toda la memoria principal del sistema, mientras que los sistemas NUMA (acceso de memoria no uniforme) tienen múltiples nodos de memoria.
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
- en un sistema de más de 200 núcleos, por ejemplo, cpusetA son núcleos 0..60 donde sea que se encuentren, cpusetB son núcleos 61..70; cpusetC es núcleos 71..80; y así sucesivamente, sin embargo, un administrador / arquitecto elige configurar.
- cpusetA se asigna a ciertos usuarios y / o programas de software específicos; cpusetB se asigna a diferentes usuarios / programas; y así.
- un usuario inicia un trabajo (proceso) que solicitaría N núcleos ... dentro de un cpuset dado, y ahora esos procesos múltiples (paralelos) están confinados a ese cpuset dado. Y para aquellos N paralelos confinados a un cpuset dado, cada uno de esos procesos debería / debería hacer uso de la afinidad del procesador o la afinidad de la CPU para que esos procesos paralelos no se agiten en diferentes núcleos dentro del cpuset.
también: https://linux.die.net/man/1/taskset
maxcpus=1
comando ? ¿Pusiste esa cadenagrub.cfg
como una opción de arranque? (Actualice su pregunta en lugar de responderla en los comentarios).