Übersicht Prozessoraffinität

Ab der Version 3.5.27 ist es möglich, Prozessoraffinität für beide, den Wrapper-Prozess und seinen kontrollierten JVM-Prozess zu konfigurieren.

Prozessoraffinität ermöglicht Ihnen, zu spezifizieren, dass ein Prozess nicht auf allen, sondern nur auf bestimmten Prozessoren (CPUs) ausgeführt wird.

Jeder der Wrapper-Prozess und der JVM-Prozess haben ihre Eigenschaften, um Prozessoraffinität zu konfigurieren; aber wenn Sie nur die Eigenschaften des Wrappers spezifizieren möchten, wird der kontrollierte JVM-Prozess standardmäßig the same configuration and automatically execute using the same CPU(s) as the Wrapper process.

NOTE

  • Die Fähigkeit, Prozessoraffinität zu konfigurieren, wurde in der Version 3.5.27 für beide Windows und Linux
  • hinzugefügt.
  • Seit der Version 3.5.28 ist es auch möglich, Prozessoraffinität für AIX, FreeBSD, HP-UX und Solaris zu konfigurieren. Jedoch sollte beachtet werden, dass es unter HP-UX und Solaris nur möglich ist, einen Prozessor pro Prozess zu binden (der Wrapper oder der JVM-Prozess).
  • Aufgrund der Tatsache, dass Mac OSX nicht Schnittstellen für das Erkennen von Prozessoren nutzen kann, ist es aktuell nicht möglich, auf diesem System Prozessoraffinität zu implementieren.
  • Prozessoraffinität wurde nicht auf Systemen mit mehr als 64 logischen Prozessoren getestet.

Die genutzten Eigenschaften, um Prozessoraffinität für den Wrapper-Prozess zu konfigurieren, sind unten beschrieben:

Die genutzten Eigenschaften, um Prozessoraffinität für den JVM-prozess zu konfigurieren, sind unten beschrieben:

<n>-Komponente:

Die "<n>"-Komponente der oben genannten Eigenschaften ist eine ganzzahlige Integer-Zahl im Bereich von "1" zu "256" und Bestimmung eines spezifischen Prozessors. Es sollte weniger oder gleich der aktuell tatsächlich vorhandenen Anzahl an Prozessoren auf der Maschine sein, auf der der Wrapper ausgeführt wird.

NOTE

Wenn Sie versuchen, Prozessoraffinität auf Systemebene festzulegen (z.B. vom Task-Manager oder von der Eingabeaufforderung aus), wird Ihnen manchmal auffallen, dass der erste Prozessor dem Index 0 zugewiesen wurde. Tatsächlich gibt es keine Standardvorgabe, die definiert, wie Prozessoren indiziert werden sollen und es kann vorkommen, dass ein paar Betriebssysteme die Nummerierung von 0, andere von 1 starten. Wir entschieden, den ersten Prozessor mit Index 1 zu bezeichnen, wenn wir den Wrapper konfigurieren.

Prozessoraffinität Eigenschaften für den Wrapper-Prozess

wrapper.cpu_affinity.set

Kompatibel :3.5.27
Editionen :Professional EditionStandard Edition (Not Supported)Community Edition (Not Supported)
Betriebssysteme :WindowsMac OSX (Not Supported)LinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OS (Not Supported)IBM z/Linux

Definiert, ob die Prozessoraffinität-Eigenschaft für den Wrapper aktiviert oder deaktiviert wird. Der Standardwert ist FALSE, was bedeutet, dass der Wrapper auf einigen Prozessoren ausgeführt wird.

Legt die Eigenschaft auf TRUE fest, um die Affinitätseinstellung auf Wrapper-Ebene einzuschalten.

Beispiel:
wrapper.cpu_affinity.set=TRUE

wrapper.cpu_affinity.default

Kompatibel :3.5.27
Editionen :Professional EditionStandard Edition (Not Supported)Community Edition (Not Supported)
Betriebssysteme :WindowsMac OSX (Not Supported)LinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OS (Not Supported)IBM z/Linux

Setzen Sie diese Eigenschaft auf TRUE, um zunächst alle Prozessoren für den Wrapper ermöglichen. Setzen Sie es auf FALSE, um zunächst alle Prozessoren für den Wrapper zu blockieren. Der Standardwert ist FALSE.

Für diese Eigenschaft ist es vorgesehen, dass sie mindestens von einer der wrapper.cpu_affinity.<n>-Eigenschaften ausgeschaltet werden kann, damit für einzelne Prozessoren Ausnahme erstellt werden können.

Beispiel 1 (Ausschalten aller Prozessoren als Standard):
wrapper.cpu_affinity.default=FALSE
Beispiel 2 (Einschalten aller Prozessoren als Standard):
wrapper.cpu_affinity.default=TRUE

NOTE

Wenn wrapper.cpu_affinity.default auf TRUE festgelegt is, aber keiner der wrapper.cpu_affinity.<n>-Eigenschaften auf FALSE festgelegt ist, wird dies den gleichen Effekt haben, als ob die Prozessoraffinität abgeschaltet worden wäre.

Im Gegenteil, wenn wrapper.cpu_affinity.default auf FALSE festgelegt ist, aber keine der wrapper.cpu_affinity.<n> Eigenschaften auf TRUE festgelegt wurde, wird dies einen Fehler erzeugen, weil dem Wrapper nicht erlaubt wäre, auf irgendeinen Prozessor der Maschine ausgeführt zu werden (Sehen Sie bitte wrapper.cpu_affinity.strict).

wrapper.cpu_affinity.<n>

Kompatibel :3.5.27
Editionen :Professional EditionStandard Edition (Not Supported)Community Edition (Not Supported)
Betriebssysteme :WindowsMac OSX (Not Supported)LinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OS (Not Supported)IBM z/Linux

Diese Reihe an Eigenschaften wird genutzt, um einzelnen Prozessoren den Zugriff auf den Wrapper-Prozess zu erlauben oder zu versperren. Sie können einen Prozessor oder mehrere den Zugriff erlauben oder versperren, indem Sie eine Zeile für jeden Prozessor hinzufügen.

Die "<n>"-Komponente dieser Eigenschaft ist eine ganzzahlige Integer-Zahl, die von "1" aus hochzählt und einen spezifischen Prozessor bezeichnet. Es sollte kleiner oder gleich der aktuell tatsächlich vorhandenen Prozessoren auf der Maschine sein, auf der der Wrapper ausgeführt wird.

Beispiel 1 (erlaubt dem Wrapper, nur auf den Prozessoren Nummer 1 und 2 ausgeführt zu werden):
wrapper.cpu_affinity.default=FALSE
wrapper.cpu_affinity.1=TRUE
wrapper.cpu_affinity.2=TRUE
Beispiel 2 (verhindert, dass der Wrapper auf den Prozessoren Nummer 1 und 3 ausgeführt wird):
wrapper.cpu_affinity.default=TRUE
wrapper.cpu_affinity.1=FALSE
wrapper.cpu_affinity.3=FALSE

NOTE

Für HP-UX und Solaris ist es nur möglich, einen Prozessor an den Wrapper zu binden. Wenn die Konfiguration so eingestellt ist, dass mehrere Prozessoren aktiviert sind, dann wird der Wrapper standardmäßig sich beenden oder den ersten aktiven Prozessor auswählen, wenn wrapper.cpu_affinity.strict auf FALSE eingestellt war.

wrapper.cpu_affinity.strict

Kompatibel :3.5.27
Editionen :Professional EditionStandard Edition (Not Supported)Community Edition (Not Supported)
Betriebssysteme :WindowsMac OSX (Not Supported)LinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OS (Not Supported)IBM z/Linux

Der Standardwert dieser Eigenschaft ist TRUE, was bedeutet, dass die Konfigurationseigendschaften des Wrappers nicht mit den vorhandenen Prozessoren der Maschine übereinstimmen; der Wrapper wird die Fehler protokollieren und sich schließlich beenden. Um weiter ausgeführt - ohne durch diese Fehler blockiert - zu werden, können Sie wrapper.cpu_affinity.strict auf FALSE festlegen. Dies wird einfach bewirken, dass der Wrapper Nachrichten mit einem 'WARNING'-Status loggt.

Beispiel:
wrapper.cpu_affinity.strict=FALSE

WARNING

Diese Fehler können die Folgenden sein:

  • Jeder der Prozessoren, die mit der 'wrapper.cpu_affinity.<n>' auf TRUE festgelegt wurde, aber tatsächlich nicht auf der Maschine existiert. Durch das Festlegen wrapper.cpu_affinity.strict=FALSE wird der Wrapper einfach nicht vorhandene Prozessoren ignorieren.
  • Die Konfiguration ist diese, dass der Wrapper nicht erlaubt wäre auf irgendeine dieser Maschinen ausgeführt zu werden. Durch Festlegen von wrapper.cpu_affinity.strict=FALSE, wird der Wrapper auf alle Prozessoren der Maschine ausgeführt(entspricht dem Ausschalten des Prozessoraffinität-Eigenschaft).
  • Aus gewissen Gründen erlaubt das Betriebssystem nicht, irgendwelche Prozessoren zuzuweisen. Durch das Festlegen von wrapper.cpu_affinity.strict=FALSE, wird der Wrapper auf beliebigen Prozessoren der Maschine (gleich wie als ob die Prozessoraffinität ausgeschaltet wäre).

Prozessoraffinität für den JVM-Prozess

wrapper.java.cpu_affinity.set

Kompatibel :3.5.27
Editionen :Professional EditionStandard Edition (Not Supported)Community Edition (Not Supported)
Betriebssysteme :WindowsMac OSX (Not Supported)LinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OS (Not Supported)IBM z/Linux

Definiert, ob die Prozessoraffinität für den JVM-Prozess ein- oder ausgeschaltet wäre. Der Standardwert ist FALSE, was bedeutet, dass der JVM-Prozess auf x-beliebigen Prozessoren laufen kann.

Setzen der Eigenschaft auf TRUE, um die Affinitätseinstellungen für den JVM-Prozess zu aktivieren.

Beispiel:
wrapper.java.cpu_affinity.set=TRUE

wrapper.java.cpu_affinity.default

Kompatibel :3.5.27
Editionen :Professional EditionStandard Edition (Not Supported)Community Edition (Not Supported)
Betriebssysteme :WindowsMac OSX (Not Supported)LinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OS (Not Supported)IBM z/Linux

Setzen dieser Eigenschaft auf TRUE, um von Beginn allen Prozessoren den Zugriff auf den JVM- Prozess zu erlauben. Setzen Sie es auf FALSE um allen Prozessoren den Zugriff auf den JVM_Prozess zu versperren. Der Standardwert ist FALSE.

Bei dieser Eigenschaft ist es vorgesehen, dass sie zumindestens von einer der wrapper.cpu_affinity.<n> Eigenschaften ausgeschaltet werden kann, damit für einzelne Prozessoren Ausnahmen erstellt werden können.

Beispiel 1 (Ausschalten aller Prozessoren als Standard)::
wrapper.java.cpu_affinity.default=FALSE
Beispiel 2 (Einschalten aller Prozessoren als Standard):
wrapper.java.cpu_affinity.default=TRUE

NOTE

Wenn wrapper.java.cpu_affinity.default auf TRUE festgelegt ist, aber keine der wrapper.java.cpu_affinity.<n> Eigenschaften auf FALSE festgelegt ist, bewirkt dies, dass der JVM-Prozess auf alle Prozessoren ausgeführt werden kann.

Im Gegenteil, wenn wrapper.java.cpu_affinity.default aufFALSE festgelegt ist, aber keine der wrapper.java.cpu_affinity.<n> Eigensch auf TRUE festgelegt wurde, wird dies einen Fehler erzeugen, weil dem JVM-Prozess nicht erlaubt wäre, auf irgendeinen der Prozessoren der Maschine ausgeführt zu werden (Sehen Sie bitte wrapper.java.cpu_affinity.strict).

wrapper.java.cpu_affinity.<n>

Kompatibel :3.5.27
Editionen :Professional EditionStandard Edition (Not Supported)Community Edition (Not Supported)
Betriebssysteme :WindowsMac OSX (Not Supported)LinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OS (Not Supported)IBM z/Linux

Diese Reihe an Eigenschaften wird genutzt, um einzelnen Prozessoren den Zugriff auf den Wrapper-Prozess zu erlauben oder zu versperren. Sie können einen Prozessor oder mehrere den Zugriff erlauben oder versperren, indem Sie eine Zeile für jeden beabsichtigten, abgezielten Prozessor hinzufügen.

Die "<n>"-Komponente dieser Eigenschaft ist eine ganzzahlige Integer-Zahl, die von "1" aus hochzählt und einen spezifischen Prozessor bezeichnet. Es sollte kleiner oder gleich der aktuell tatsächlich vorhandenen Prozessoren auf der Maschine sein, auf der der Wrapper ausgeführt wird.

Beispiel 1 (erlaubt dem Wrapper, nur auf den Prozessoren Nummer 1 und 2 ausgeführt zu werden):
wrapper.java.cpu_affinity.default=FALSE
wrapper.java.cpu_affinity.1=TRUE
wrapper.java.cpu_affinity.2=TRUE
Beispiel 2 (verhindert, dass der Wrapper auf den Prozessoren Nummer 1 und 3 ausgeführt wird): :
wrapper.java.cpu_affinity.default=TRUE
wrapper.java.cpu_affinity.1=FALSE
wrapper.java.cpu_affinity.3=FALSE

NOTE

Für HP-UX und Solaris ist es möglich, nur einen Prozessor an den JVM-Prozess zu binden. Wenn die Konfiguration so ist, dass mehrere Prozessoren aktiviert sind, wird der Wrapper sich standardmäßig beenden, oder den ersten aktiven Prozessor auswählen, wenn wrapper.java.cpu_affinity.strict auf FALSE festgelegt wurde. Für HP-UX und Solaris ist es nur möglich, einen Prozessor an den Wrapper zu binden. Wenn die Konfiguration so eingestellt ist, dass mehrere Prozessoren aktiviert sind, dann wird der Wrapper standardmäßig sich beenden oder den ersten aktiven Prozessor auswählen, wenn wrapper.cpu_affinity.strict auf FALSE eingestellt war.

wrapper.java.cpu_affinity.strict

Kompatibel :3.5.27
Editionen :Professional EditionStandard Edition (Not Supported)Community Edition (Not Supported)
Betriebssysteme :WindowsMac OSX (Not Supported)LinuxIBM AIXFreeBSDHP-UXSolarisIBM z/OS (Not Supported)IBM z/Linux

Der Standardwert dieser Eigenschaft ist TRUE, was bedeutet, dass wenn die Konfigurationseigenschaften des JVM-Prozesses nicht mit den vorhandenen Prozessoren der Maschine zusammenpassen, wird der Wrapper Fehler loggen und sich schlußendlich beenden. Um die Ausführung zu gewährleisten, ohne von diesen Fehlern blockiert zu werden, können Sie wrapper.java.cpu_affinity.strict auf FALSE festlegen. Dies bewirkt einfach, dass der Wrapper, Nachrichten mit einem 'WARNING'-Status loggen wird.

Beispiel:
wrapper.java.cpu_affinity.strict=FALSE

WARNING

Die Fehler können die Folgenden sein:

  • Jeder Prozessor, der mit 'wrapper.java.cpu_affinity.<n>' definiert wurde, wurde mit TRUE festgelegt, existiert aber tatsächlich gar nicht. Durch Festlegen von wrapper.java.cpu_affinity.strict=FALSE, wird der Wrapper einfach die nicht-existenten Prozessoren ignorieren.
  • Die Konfiguration ist so festgelegt, da der Wrapper nicht erlaubt ist, auf irgendeinem Prozessor der Maschine direkt ausgeführt zu werden. Durch Festlegen von wrapper.java.cpu_affinity.strict=FALSE, wird der JVM-Prozess auf jedem Prozessor der Maschine ausgeführt werden.
  • Aus bestimmten Grund erlaubt das Betriebssystem nicht, irgendeine der spezifizierten Prozessoren zuzuteilen. Durch Festlegen von wrapper.java.cpu_affinity.strict=FALSE, wird der JVM-Prozess auf jedem Prozessor der Maschine ausführbar sein.