Sie müssen Kerne nicht unbedingt ausschalten oder deaktivieren .
Sie würden cpusets und taskset verwenden
http://man7.org/linux/man-pages/man7/cpuset.7.html
Ein cpuset definiert eine Liste von CPUs und Speicherknoten ...
Das cpuset-Dateisystem ist eine Pseudo-Dateisystem-Schnittstelle zum cpuset-Mechanismus des Kernels, mit dem die Prozessor- und Speicherplatzierung von Prozessen gesteuert wird. Es wird üblicherweise unter / dev / cpuset gemountet.
Auf Systemen mit Kerneln, die mit integrierter Unterstützung für cpusets kompiliert wurden, sind alle Prozesse an ein cpuset gebunden, und cpusets sind immer vorhanden. Wenn ein System cpusets unterstützt, hat es den Eintrag nodev cpuset in der Datei / proc / filesystems. Durch das Mounten des cpuset-Dateisystems (siehe Abschnitt BEISPIEL unten) kann der Administrator die cpusets auf einem System so konfigurieren, dass die Prozessor- und Speicherplatzierung von Prozessen auf diesem System gesteuert wird. Wenn die cpuset-Konfiguration auf einem System nicht geändert wird oder wenn das cpuset-Dateisystem nicht einmal angehängt ist, hat der vorhandene cpuset-Mechanismus standardmäßig keine Auswirkungen auf das Systemverhalten.
Die CPUs eines Systems umfassen alle logischen Verarbeitungseinheiten, auf denen ein Prozess ausgeführt werden kann, einschließlich, falls vorhanden, mehrerer Prozessorkerne innerhalb eines Pakets und Hyper-Threads innerhalb eines Prozessorkerns. Speicherknoten umfassen alle unterschiedlichen Bänke des Hauptspeichers; kleine und SMP-Systeme haben normalerweise nur einen Speicherknoten, der den gesamten Hauptspeicher des Systems enthält, während NUMA-Systeme (ungleichmäßiger Speicherzugriff) mehrere Speicherknoten haben.
Kurz gesagt, wenn Sie 1 CPU mit 6 Kernen haben, würden Sie cpusets konfigurieren und Ihren Prozess in einem cpuset starten , das nur auf einem Kern konfiguriert ist, z. B. Kern 3. Wenn es sich um einen parallelen Prozess handelt, ist alles auf diesen einen Kern beschränkt. Wenn Sie also 4 Prozesse in einem bestimmten CPU-Satz mit nur einem definierten Kern starten, erhält jeder der 4 Prozesse eine CPU-Auslastung von 25% auf Kern 3.
Darauf aufbauend wird in der Regel ein cpuset so konfiguriert, dass
- in einem System mit mehr als 200 Kernen ist cpusetA beispielsweise die Kerne 0 bis 60, wo immer sich diese befinden mögen, cpusetB die Kerne 61 bis 70; cpusetC sind die Kerne 71 ... 80; usw. Ein Administrator / Architekt entscheidet sich jedoch für die Konfiguration.
- cpusetA ist bestimmten Benutzern und / oder bestimmten Softwareprogrammen zugeordnet. cpusetB ist verschiedenen Benutzern / Programmen zugeordnet; und so weiter.
- Ein Benutzer startet einen Job (Prozess), der N Kerne ... innerhalb eines gegebenen CPU-Satzes anfordert, und nun sind diese mehreren (parallelen) Prozesse auf diesen gegebenen CPU-Satz beschränkt. Und für diejenigen N parallelen Prozesse, die auf einen bestimmten CPU-Satz beschränkt sind, würde / sollte jeder dieser Prozesse Prozessoraffinität oder CPU-Affinität verwenden, damit diese parallelen Prozesse nicht auf verschiedenen Kernen innerhalb des CPU-Satzes herumwirbeln.
auch: https://linux.die.net/man/1/taskset
maxcpus=1
Befehl setzen ? Haben Sie diese Zeichenfolgegrub.cfg
als Startoption eingegeben? (Bitte aktualisieren Sie Ihre Frage, anstatt sie in Kommentaren zu beantworten.)