Est-il possible de désactiver un CPU (pas un core)?

10

Est-il possible de désactiver un CPU, pas un core? Je veux faire un test pour vérifier si les performances peuvent faire une grande différence ou non.

J'utilise Ubuntu 10.10.

LeoYuan 袁力皓
la source

Réponses:

10

En plus de le faire dans votre BIOS, une option est appelée maxcpus.

Vous pouvez modifier cette option dans lors de la sélection de votre option de démarrage grub en ajoutant maxcpus=1aux paramètres. Image de vers aléatoire:

entrez la description de l'image ici

Choisissez «e» et vous obtenez une ligne de commande où vous pouvez ajouter des options.

Vous pouvez également créer une option de démarrage permanente dans grub en faisant une copie de votre option de démarrage actuelle et en l'ajoutant maxcpus=1aux paramètres de démarrage. Vous pouvez nommer ce 'Ubuntu, kernel 2.5.12-9-386 (1 cpu)' et l'avoir parmi les autres options de démarrage comme le montre l'image.

Vous pouvez vérifier le fonctionnement sur 1 unité centrale en émettant:

cat /proc/cpuinfo | grep processor cela devrait montrer quelque chose comme ceci:

processeur: 0
processeur: 1

Et la 2ème ligne devrait disparaître après le démarrage avec 1 CPU.

Rinzwind
la source
1
cette question ferait aussi une blague très méchante! : D
Alvar
Que se passe-t-il si vous définissez maxcpus = 0? : P
crazy2be
@Rinzwind J'ai fait exactement ce que vous avez dit, mais le résultat semble étrange, j'ai obtenu 12 informations sur les processeurs avant d'ajouter "maxcpus = 1" aux paramètres lors de la grepping, mais je n'ai reçu que 1 information sur les processeurs après modification, il ne semble y avoir qu'un seul cœur dans les 12 cœurs sont activés. Remarque: mon ordinateur possède deux processeurs à six cœurs.
LeoYuan
@ deviner crazy2be: le 1er processeur s'appelle 0 donc vous finissez par en utiliser un? : D
Rinzwind
@ LeoYuan88 袁力皓 pouvez-vous éditer la sortie de cat / proc / cpuinfo | processeur grep avant et après le démarrage avec maxcpus = 1?
Rinzwind
7

Vous pouvez désactiver dynamiquement les CPU via /sys/devices/system/cpu/cpuN/online, par exemple pour désactiver le CPU 1, utilisez:

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

et pour réactiver, utilisez:

echo 1 | sudo tee /sys/devices/system/cpu/cpu1/online
Colin Ian King
la source
Cela semble désactiver un lcore, pas un CPU. J'ai l'un de ces répertoires pour chaque cœur logique de mon système.
sudo
1

Vous pouvez toujours débrancher le CPU de son socket. C'est de la force brute, mais vous êtes assuré d'obtenir le test que vous voulez, et vous n'avez pas à vous inquiéter si le commutateur kernel / BIOS / quel qu'il soit fait vraiment ce que vous espérez qu'il fasse.

Mon entreprise possède de grandes installations de batteries de serveurs dans divers endroits à travers le monde. Dans notre laboratoire, nous supprimons parfois les CPU des sockets pour un tel test.

Il y a une variation intéressante sur ce test que vous pouvez faire avec des systèmes NUMA multi-CPU . Sur ces types de cartes mères, vous pouvez supprimer toutes les barrettes mémoire DIMM contrôlées par un processeur physique. Le système démarrera toujours très bien, et vous pourrez ensuite exécuter des tests avec votre application épinglée sur différents cœurs, ce qui vous permettra de mesurer les effets de la mémoire "locale" ou "distante".

David Gardner
la source
Désolé, je ne sais toujours pas comment débrancher le CPU de son socket, pourriez-vous me montrer comment faire le travail?
LeoYuan
0

Aimeriez-vous voir les performances d'une application multithread avec le nombre de cœurs? Si tel est le cas, vous pouvez utiliser l'utilitaire d'ensemble de tâches. Je suppose que vous avez une machine NUMA. Vous pouvez installer l'utilitaire numactl et en l'utilisant, vous pouvez trouver les cœurs correspondant à quel processeur. Par exemple, votre machine a deux CPUS (puces) quadricœurs. En utilisant l'utilitaire de jeu de tâches, vous pouvez créer des cœurs d'un processeur en tant qu'ensemble et les allouer à votre application. Ensuite, votre application utilise un seul processeur / puce (quatre cœurs). Veuillez me faire savoir si vous avez besoin de plus d'informations.

samarasa
la source