Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Performance-Verbesserung: Größe der Datenbereiche im IPC-Shared Memory anpassen

Den Shared Memory-Bereich für die Inter-Prozess-Kommunikation (IPC-Shared Memory-Bereich) benötigt die UTM-Anwendung für den Austausch der Nachrichten zwischen ihren Prozessen. Er wird von openUTM angelegt. Ist dieser Bereich zu klein, dann kann es zu Performance-Engpässen und zum Abbau von Verbindungen kommen.

Der größte Teil des IPC-Shared Memory-Bereichs dient zur Ablage der Nachrichten, die zwischen den Prozessen einer Anwendung ausgetauscht werden. Dieser Bereich wird im folgenden Datenbereich genannt. Der restliche Teil dient zur Verwaltung der Prozesse und deren Verbindungen.

Der Datenbereich im IPC-Shared Memory ist in Einheiten von 4 KB organisiert.

Die Größe des IPC-Shared Memory wird von openUTM Anwendungs-spezifisch festgelegt. Sie ist im wesentlichen bestimmt durch die Anzahl der generierten Kommunikationspartner (MAX SEMARRAY) bzw. der generierten Semaphore (MAX SEMKEY). Siehe auch „Semaphore" (Von einer UTM-Anwendung benötigte Betriebsmittel).

Pro generiertem Semaphorschlüssel legt openUTM einen Datenbereich von ca. 10 * 4 KB an. Zusätzlich legt openUTM noch pro generiertem Kommunikationspartner einen Datenbereich von ca. 4 KB an.

Bei hohem Daten-Aufkommen auf den Verbindungen zu Kommunikationspartnern kann der von openUTM angelegte Datenbereich zu klein sein. Es kann dann zu Performance-Engpässen und somit zum Abbau von Verbindungen kommen. Um das zu vermeiden, können Sie die Größe des IPC-Shared Memorys vergrößern. Dazu dienen die Umgebungsvariablen UTM_IPC_LETTER und UTM_IPC_EXTP_LETTER. Mit UTM_IPC_LETTER beeinflussen Sie die absolute Größe des IPC-Shared Memory, mit UTM_IPC_EXTP_LETTER den Datenbereich im IPC-Shared Memory, der einer einzelnen Verbindung maximal zur Verfügung steht.

Absolute Größe des Datenbereichs anpassen

Der Datenbereich im IPC-Shared Memory wird unter den existierenden Verbindungen im Sinne von „first come - first serve“ aufgeteilt. Ist der gesamte Datenbereich belegt, werden Verbindungen abgebaut.

openUTM gibt dann folgende Meldung aus:

U189 IPC Engpass &IPCOBJ &IPCREAS

mit den Inserts &IPCOBJ=LETT und &IPCREAS=IPC FULL oder EXTP FULL.

Um dies zu vermeiden, können Sie die absolute Größe des Datenbereichs mit Hilfe der Umgebungsvariablen UTM_IPC_LETTER vergrößern. In UTM_IPC_LETTER geben Sie die Anzahl der 4KB-Einheiten an, die das IPC-Shared Memory umfassen soll. Der kleinste erlaubte Wert ist 5 (entspricht 20KB).

Eine Änderung von UTM_IPC_LETTER wirkt sich erst nach dem nächsten Start der UTM-Anwendung aus. UTM_IPC_LETTER wird beim Anwendungsstart vom ersten Workprozess ausgewertet.

Bei sehr niedrigem Daten-Aufkommen können Sie andererseits mit UTM_IPC_LETTER den Datenbereich verkleinern. Damit können Sie den Overhead verringern, der durch die Verwaltung des IPC-Shared Memorys durch das Betriebssystem benötigt wird.

Maximalen Datenbereich für das Nachrichten-Aufkommen pro Verbindung anpassen

Grundsätzlich sind alle Verbindungen bei der Vergabe des Datenbereichs im IPC-Shared Memory gleichberechtigt. Damit der Datenbereich aber nicht von einer Verbindung allein belegt wird, ist standardmäßig ein maximaler Bereich von 64 KB (16 * 4KB) festgelegt, der von einer Verbindung zu einem Zeitpunkt belegt werden kann. Sind diese 64 KB von einer Verbindung bereits belegt, dann wird die Verbindung abgebaut.

openUTM gibt dann folgende Meldung aus:

U189 IPC Engpass &IPCOBJ &IPCREAS

mit den Inserts &IPCOBJ=LETT und &IPCREAS=MAX ILETT oder MAX OLETT.

Um dies zu vermeiden, können Sie den Datenbereich, der im IPC-Shared Memory pro Verbindung maximal zur Verfügung steht, mit der Umgebungsvariablen UTM_IPC_EXTP_LETTER vergrößern.

Mit UTM_IPC_EXTP_LETTER können Sie die maximale Größe des Datenbereichs pro Verbindung in 4KB-Einheiten angeben. Als Standardwert ist 16 eingestellt. Der kleinste erlaubte Wert ist 1 (entspricht 4KB).

Eine Änderung von UTM_IPC_EXTP_LETTER wirkt sich erst nach dem nächsten Start der UTM-Anwendung aus. UTM_IPC_EXTP_LETTER wird beim Anwendungsstart vom ersten Workprozess ausgewertet.