Ist es möglich, eine CPU (keinen Kern) zu deaktivieren?


10

Ist es möglich, eine CPU zu deaktivieren, keinen Kern? Ich möchte einen Test durchführen, um zu überprüfen, ob die Leistung einen großen Unterschied machen kann oder nicht.

Ich benutze Ubuntu 10.10.

Antworten:


10

Außerdem gibt es in Ihrem BIOS eine Option namens maxcpus.

Sie können diese Option bei der Auswahl Ihrer Grub-Boot-Option bearbeiten, indem Sie sie maxcpus=1zu den Parametern hinzufügen . Zufälliges Madenbild:

Geben Sie hier die Bildbeschreibung ein

Wählen Sie 'e' und Sie gelangen zu einer Befehlszeile, in der Sie Optionen hinzufügen können.

Sie können auch eine permanente Startoption in grub erstellen, indem Sie eine Kopie Ihrer aktuellen Startoption erstellen und maxcpus=1zu den Startparametern hinzufügen . Sie können dieses 'Ubuntu, Kernel 2.5.12-9-386 (1 CPU)' nennen und es unter den anderen Boot-Optionen haben, wie das Bild zeigt.

Sie können die Ausführung auf 1 CPU überprüfen, indem Sie Folgendes ausgeben:

cat /proc/cpuinfo | grep processor das sollte ungefähr so ​​zeigen:

Prozessor: 0
Prozessor: 1

Und die 2. Zeile sollte nach dem Booten mit 1 CPU verschwinden.


1
Diese Frage wäre auch ein sehr gemeiner Scherz! : D
Alvar

Was passiert, wenn Sie maxcpus = 0 setzen? : P
crazy2be

@Rinzwind Ich habe genau das getan, was Sie gesagt haben, aber das Ergebnis scheint seltsam. Ich habe 12 Prozessorinformationen erhalten, bevor ich beim Greppen "maxcpus = 1" zu den Parametern hinzugefügt habe, aber nach der Änderung habe ich nur 1 Prozessorinformationen erhalten, es scheint nur ein Kern in Alle 12 Kerne sind aktiviert. Hinweis: Mein Computer verfügt über zwei Sechs-Kern-CPUs.
LeoYuan 31

@ crazy2be Vermutung: Der 1. Prozessor heißt 0, also verwenden Sie am Ende einen? : D
Rinzwind

@ LeoYuan88 袁力皓 können Sie die Ausgabe von cat / proc / cpuinfo | bearbeiten Grep-Prozessor vor und nach dem Booten mit maxcpus = 1?
Rinzwind

7

Sie können CPUs dynamisch deaktivieren, indem Sie /sys/devices/system/cpu/cpuN/onlinebeispielsweise CPU 1 deaktivieren:

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

und zum erneuten Aktivieren verwenden Sie:

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

Dies scheint einen lcore zu deaktivieren, keine CPU. Ich habe eines dieser Verzeichnisse für jeden logischen Kern auf meinem System.
Sudo

1

Sie können die CPU jederzeit vom Sockel trennen. Es ist Brute Force, aber Sie werden garantiert den gewünschten Test erhalten, und Sie müssen sich keine Sorgen machen, ob der Kernel / das BIOS / welcher Switch auch immer das tut, was Sie sich erhoffen.

Mein Unternehmen verfügt über große Installationen von Serverfarmen an verschiedenen Standorten auf der ganzen Welt. In unserem Labor entfernen wir manchmal CPUs aus Sockeln für einen solchen Test.

Es gibt eine interessante Variante dieses Tests, die Sie mit NUMA- Systemen mit mehreren CPUs durchführen können. Auf diesen Motherboard-Typen können Sie alle Speicher-DIMMs entfernen, die von einer physischen CPU gesteuert werden. Das System startet weiterhin einwandfrei, und Sie können dann Tests ausführen, bei denen Ihre Anwendung an verschiedene Kerne gebunden ist, um die Auswirkungen des "lokalen" oder "Remote" -Speichers zu messen.


Entschuldigung, ich weiß immer noch nicht, wie ich die CPU aus dem Sockel ziehen soll. Können Sie mir zeigen, wie ich den Job mache?
LeoYuan 31

0

Möchten Sie die Leistung einer Multithread-Anwendung zusammen mit der Anzahl der Kerne sehen? In diesem Fall können Sie das Task-Set-Dienstprogramm verwenden. Ich denke, Sie haben eine NUMA-Maschine. Sie können das Dienstprogramm numactl installieren und mithilfe dieses Dienstprogramms ermitteln, welche Kerne welcher CPU entsprechen. Beispielsweise verfügt Ihre Maschine über zwei Quad-Core-CPUS (Chips). Mit dem Dienstprogramm "Taskset" können Sie Kerne einer CPU als Satz erstellen und diese Ihrer Anwendung zuweisen. Dann verwendet Ihre Anwendung nur eine CPU / einen Chip (vier Kerne). Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.