Wie weise ich verschiedenen Prozessen verschiedene CPU-Kerne zu?

Wie weise ich verschiedenen Prozessen verschiedene CPU-Kerne zu?

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

Antwort1

Die akzeptierte Antwort mag ein guter Rat sein, aber sie ist sicherlich keine Antwort auf Ihre Frage. Ihre Frage lässt mich auch nicht darauf schließen, dass Sie nicht qualifiziert sind, die Antwort zu hören. Tatsächlich klingt sie wie ein gutes Beispiel für eine Situation, in der Sie speziell angeben möchten, welche Prozessoren was tun sollen.

Um es auf den Punkt zu bringen: Was Sie wollen, sind CPU-Sets. Sie werden in Ubuntu 11.10 unterstützt, da es einen aktuellen Linux-Kernel verwendet. 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 ist vielleicht „großartig“ bei der Entscheidung über die Zuteilung der CPU-Zeit, aber es ist nicht perfekt.

Antwort2

Ich hoffe, das klingt 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ürden, hätte dies wahrscheinlich sehr negative Auswirkungen auf die Leistung. Selbst wenn das Programm nicht dafür ausgelegt ist, mehr Prozessoren zu nutzen, verschiebt Linux sie bei Bedarf auf andere Kerne. Das Programm wird es nicht bemerken.

niceMöglicherweise möchten Sie ihnen mit dem Befehl beide niedrige Werte zuweisen, niceum ihnen höhere Prioritäten zuzuweisen.

verwandte Informationen