Wie ordne ich verschiedenen Prozessen unterschiedliche CPU-Kerne zu?

7

Ich verwende Ubuntu Server Edition 11.10 und habe zwei extrem CPU-intensive Programme, die auf demselben Kern ausgeführt werden. Keiner dieser Prozesse wurde für die Mehrkernverarbeitung programmiert. Gibt es eine Möglichkeit, Prozess A anzuweisen, auf Core 1 und Prozess B auf Core 2 ausgeführt zu werden?

Otoris
quelle

Antworten:

6

Die akzeptierte Antwort mag ein guter Rat sein, ist aber sicherlich keine Antwort auf Ihre Frage. Ihre Frage bedeutet für mich nicht, dass Sie nicht qualifiziert sind, die Antwort zu hören. Tatsächlich klingt dies nach einem guten Beispiel für eine Situation, in der Sie speziell angeben möchten, welche Prozessoren was tun sollen.

Was Sie wollen, sind CPU-Sets. Sie werden in Ubuntu 11.10 unterstützt, da ein ausreichend neuer Linux-Kernel verwendet wird. Ich glaube, Linux 2.6 ist erforderlich.

Sie können die Manpage für cpuset hier lesen: http://www.kernel.org/doc/man-pages/online/pages/man7/cpuset.7.html

Hier ist eine weitere Seite zum allgemeinen Lesen: http://www.bullopensource.org/cpuset/

Linux mag bei der Entscheidung, wie die CPU-Zeit zugewiesen werden soll, "großartig" sein, aber es ist nicht perfekt.

GoldenNewby
quelle
Touché, guter Herr, das habe ich gesucht.
Otoris
Gute Antwort. Ich bezweifle stark, dass Sie die Leistung in einem Zwei-Kern-System verbessern können, aber Links und Referenzen sind definitiv gut.
Jo-Erlend Schinstad
Der Task-Set-Befehl ist möglicherweise einfacher für das, was Otoris versucht. Doppelte Frage: askubuntu.com/questions/102258/…
Ramón
2

Ich hoffe, das wirkt nicht unhöflich, aber wenn Sie diese Frage stellen, sollten Sie sie nicht einmal in Betracht ziehen. Dies ist eines der Dinge, die Linux wirklich gut selbst herausfinden kann. Wenn Sie dies tun, würde sich dies wahrscheinlich sehr negativ auf die Leistung auswirken. Auch wenn das Programm nicht für die Verwendung weiterer Prozessoren ausgelegt ist, verschiebt Linux diese nach Bedarf auf verschiedene Kerne. Das Programm wird es nicht bemerken.

Möglicherweise möchten Sie beiden nicemit dem niceBefehl niedrige Werte zuweisen, um ihnen höhere Prioritäten zu geben.

Jo-Erlend Schinstad
quelle
:) Danke, ich war mir des Ausmaßes des Linux-Genies nicht bewusst und plante das Worst-Case-Szenario.
Otoris