Die Zuweisung eines cpu-Kern einen Prozess - Linux
Gibt es eine Möglichkeit zu zwingen, einen Prozess mit bestimmten PID, ausgeführt werden und laufen nur auf einem der cpu s der server? Ich weiß, dass es einen Befehl wie diesen
taskset -cp <Cpu_Number> <Pid>
aber der obige Befehl funktioniert nicht auf meinem system. Also bitte lassen Sie mich wissen, wenn es irgendeinen anderen Befehl.
- Was ist das server OS? Ein Benutzer besitzen muss
CAP_SYS_NICE
ändern Sie die CPU-Affinität eines Prozesses. Jeder Benutzer abrufen können, die affinity mask. - Es ist nicht fair, laufen Weg von der Frage, die Sie gerade gebucht. Bitte warten Sie, für die sofortige Kommentare. Kommentare sind oft nützlich für die Klarstellungen, die in Ihrer Frage
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es zwei Möglichkeiten der Zuweisung von cpu-Kern/Kerne zu einem Laufenden Prozess.
Erste Methode:
Ziemlich klar ! zuweisen der cpu-Kerne 0 und 4, um die pid-9030.
Zweite Methode:
Dies ist ein wenig komplexer. Der hexadezimale Zahl, die folgt
-p
ist eine Bitmaske. Eine Erklärung finden Sie hier, ein Auszug ist unten angegeben :Immer noch verwirrt? Betrachten Sie das Bild unten :
Habe ich die binaries entspricht die hexadezimale Zahl und die Prozessoren gezählt von Links, beginnend mit null. Im ersten Beispiel gibt es einen
one
in der Bitmaske entsprechend derzero
th-Prozessor, so dass der Prozessor aktiviert wird für einen Prozess. Alle Prozessoren, diezero
zu Ihrer entsprechenden position in der Bitmaske wird deaktiviert. In der Tat ist dies der Grund, warum es heißt eine Maske.Gesagt haben, alle diese, mit taskset zu ändern, die Prozessor-Affinität voraussetzt :
Bitte überprüfen Sie die Capabalities Mann Seite.
Vielleicht haben Sie Interesse, dies zu betrachten ALSO Frage, die sich mit CAP_SYS_NICE.
Meine Ressourcen
Tutorials
Punkt
XModulo
ps -o pid,psr,comm -p <pid>
um zu sehen, was für eine cpu zugeordnet ist, um einen bestimmten Prozess. Dann versuche ich, dies zu ändern, cpu-Belegung durch den folgenden Befehltaskset -cp <new_cpu> <pid>
. Dann habe ich wieder mit dem Befehlps -o pid,psr,comm -p <pid>
und ich sehe die bisherigen cpu-Zuweisung wird nicht geändert.Linux divides the privileges traditionally associated with superuser into distinct units, known as capabilities, which can be independently enabled and disabled.
Standardmäßig CAP_SYS_NICE aktiviert ist, für die root-denke ich.. können Sie überprüfen, ob die CAP_SYS_NICE gesetzt ist oder nicht, indem Sie diesen Befehl verwendenlcap -c CAP_SYS_NICE
.