On Demand Router (ODR) sind Server, die als zwischengeschaltete Server für HTTP-Anforderungen agieren und
von Anwendungsservern oder Webservern bedient werden.
Es gibt viele Faktoren, die die Leistung des On Demand Router (ODR) beeinflussen.
Wenn Sie feststellen, dass Ihre
ODR nicht wie gewünscht arbeiten, müssen Sie diese eventuell optimieren.
Vorbereitungen
Lesen Sie vor dem Ändern der Größe des Java-Heap-Speichers folgende Informationen:
- Java Virtual Machines optimieren
- Entfernen Sie alle Trace-Informationen mit Ausnahme von
"*=info", weil zusätzliche Trace-Zeichenfolgen die ODR-Leistung beim Optimieren beeinträchtigen.
Führen Sie die folgenden Schritte aus, um die Trace-Informationen zu ändern:
- Wählen Sie
Server > On Demand Router ><ODR-Name> >
Fehlerbehebung > Protokollierung und
Tracing > Diagnose-Trace-Service > Detailstufe für Protokoll ändern.
- Vergewissern Sie sich, dass nur "*=info" angegeben ist.
Falls erforderlich, lesen Sie die Dokumentation zum On Demand Router (ODR).
Weitere Informationen finden Sie im Artikel
ODR erstellen und konfigurieren
.
Informationen zu dieser Task
Verwenden Sie die Informationen in diesem Abschnitt für die Fehlerbehebung bei den ODR,
wenn diese nicht in der üblichen Art und Weise arbeiten oder wenn ungewöhnliche Probleme auftreten.
Die folgende Liste enthält beispielsweise Optimierungsvorschläge zur Verbesserung der
ODR-Leistung. Die Vorschläge sind in der Reihenfolge ihrer Bedeutung für die Fehlerbehebung aufgeführt.
Prozedur
-
Prüfen Sie die JVM-Einstellungen. Weitere Informationen hierzu finden Sie im Artikel Größe des JVM-Heap-Speichers für den ODR ändern
.
HP und Sun stellen weitere Optimierungsparameter zur Optimierung der Garbage-Collection bereit.
Wenn Sie für JVMs mit Garbage-Collection nach Objektalter, z. B.
Sun und HP oder die J9 JVM von IBM,
die generationsorientierte Garbage-Collection verwenden, legen Sie die permanenten Speicherregion auf ungefähr
100 MB fest, um den im ODR enthaltenen 90-MB-Footprint aufzunehmen.
Außerdem wird durch eine
"SurvivorRation" von 16 die Verarbeitung in der jungen Generation weiter optimiert.
Auf der HP JVM können Sie NIO aktivieren, um eine Leistungssteigerung zu erzielen.
Verwenden Sie dazu den Selector Provider -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.DevPollSelectorProvider,
und inaktivieren Sie den zusätzlichen Aufruf vor einem Lesevorgang: -XX:-ExtraPollBeforeRead.
-
Optimieren Sie die Keepalive-Einstellungen der Verbindung.
Weitere Informationen finden Sie im Artikel
Persistente Anforderungen des ODR optimieren
.
-
Erhöhen Sie die maximale Anzahl Verbindungen pro Server für den ODR.
Weitere Informationen finden Sie im Artikel Maximale Anzahl Verbindungen für ODR optimieren
.
-
Inaktivieren Sie das ODR-Caching, wenn es nicht verwendet wird.
Wenn das
ODR-Caching aktiviert ist, muss der ODR feststellen, ob eine Anforderung im Cache zwischenspeichert werden
soll. Anschließend muss er anhand des Cache-Repositorys prüfen, ob die Anforderung bereits
zwischengespeichert wurde.
Dies bedeutet einen zusätzlichen Mehraufwand.
-
Inaktivieren Sie die Zugriffsprotokollierung, wenn sie nicht benötigt wird.
Wenn Sie die Zugriffsprotokollierung benötigen,
ist die Proxy-Protokollierung gegenüber der
HTTP-Channel-/NCSA-Protokollierung zu bevorzugen, da die Proxy-Zugriffsprotokollierung außerhalb des
Anforderungs-/Antwortpfades stattfindet.
Daher hat sie keine Auswirkungen auf die Antwortzeit der Anforderung.
Die Zugriffsprotokollierung verursacht
auf einer relativ schnellen Platte normalerweise einen Mehraufwand von
5 %, allerdings ist der Prozentsatz in hohem Maße von der Plattenleistung abhängig.
-
Verwenden Sie sowohl für ankommende als auch für abgehende Arbeitsanforderungen
dieselbe Thread-Gruppe, um das Verschieben von
Anforderungen zwischen Threads und
den daraus resultierenden Mehraufwand zu vermeiden.
Der ODR verfügt über eine Reihe von Threads, die sich in den meisten Situationen selbst optimieren.
Anforderungen für die Warteschlange und Regulierungsanforderungen werden dem Standard-Thread-Pool zugeteilt,
der sich selbst so optimieren kann, dass er nur die Überlaufanforderungen behandelt.
Die primäre Thread-Gruppe wird weiterhin zur Behandlung der meisten Anforderungen eingesetzt.
Alle Anforderungen im Thread-Pool sind asynchron und ohne blockierende Aufrufe, daher sollten
nicht mehr als ein oder zwei Threads pro CPU existieren.
Führen Sie die folgenden Schritte aus, um dieselbe Thread-Gruppe für ankommende und für abgehende Arbeitsanforderungen zu verwenden:
-
Wählen Sie
Server > On Demand Router > ODR-Name > Thread-Pools Standard-Thread-Pool >
Angepasste Eigenschaften > Neu
-
Geben Sie combineSelectors als Namen an.
-
Geben Sie als Wert 1 an.
-
Klicken Sie auf OK.
-
Klicken Sie auf Speichern.