web-dev-qa-db-fra.com

Désactiver les cœurs CPU sur le processeur quad core sur Linux

Je souhaite désactiver 3 cœurs CPU et gérer mon processeur sur un seul noyau. J'ai utilisé la commande: maxcpus=1. Mais après cela, j'ai exécuté cette commande ls /sys/devices/system/cpu. Il montre toujours cpu0,cpu1,cpu2,cpu3.

J'ai aussi essayé: echo 0 > /sys/devices/system/cpu3/online Mais j'obtiens l'erreur suivante: no such file or directory.

14
user3818847

Comme Patrick a indiqué dans un commentaire , vous avez le chemin sous /sys tort.

echo 0 > /sys/devices/system/cpu/cpu3/online

Si vous souhaitez activer tous les CPU, sauf cpu0:

for x in /sys/devices/system/cpu/cpu[1-9]*/online; do
  echo 0 >"$x"
done

Taper maxcpus=1 à une invite de shell n'a aucun effet. Plus précisément, il définit la variable maxcpus à la valeur 1 Dans cette coquille, qui n'a aucun autre effet. Vous pouvez définir le nombre de CPU au moment de démarrage en passant maxcpus comme paramètre de noya . Pour cela, vous devez modifier votre configuration de bootloader (par exemple pour modifier la ligne de commande du noyau en u-boot).