Wie kann ich meine Portalimplementierung schneller machen?

Eine Portalimplementierung sollte systematisch analysiert werden, damit sie hochperformant betrieben werden kann. Dafür kann der im Portal integrierte Profiler (/Portal.Node/profiler, security role "manager" oder "gentics") verwendet werden. Bei der Aufzeichnung mit dem Profiler sollte beachtet werden, daß jede aufgezeichnete Invocation etwa 175 Byte Speicher verbraucht. Damit verbrauchen 600.000 Invocations rund 100 MB Speicher.

Folgende einfache Tipps zur Konfiguration einer Produktivumgebung hilft in vielen Fällen die Performance deutlich zu verbessern. Sollten diese Tipps nicht den erhofften Erfolg bringen, hilft Ihnen unser Team gerne weiter.

Nachladen der Templates deaktivieren
Kontrollieren ob in der Portalkonfiguration alle Parameter "modificationCheckInterval" in der template-section auskommentiert oder auf -1 gesetzt sind.

Nachladen der Views deaktivieren
Kontrollieren ob in der Portalkonfiguration der Parameter "portal.viewplugin.checkviewchanges" in der general-section deaktiviert (false) ist.

Nachladen der Dictionaries deaktivieren
Kontrollieren ob in der Portalkonfiguration der Parameter "portal.dictionaries.modificationCheckInterval" in der general-section auskommentiert oder auf -1 (default) gesetzt ist.

Portal Caches
Kontrollieren ob in der Portalkonfiguration die folgenden Parameter in der general-section aktiviert (true) sind:
portal.templatefinder.cache
portal.portlet.cache

Datasources Caches
Kontrollieren ob in der Portalkonfiguration die folgenden Parameter der datasource-section in den datasource-nodes gesetzt sind:
cache=true (für alle datasources)
cache.syncchecking=true (zusätzlich für alle von Gentics Content.Node publizierten ContentRepositories)
cache.foreignlinkattributes=true (ebenfalls nur für alle von Gentics Content.Node publizierten ContentRepositories)

Optimierte Datasource Queries
Stark relationale Abfragen auf ein ContentRepository können sehr komplex (joins, subselects) und langsam werden. Abhilfe schafft das Optimieren von Attributen. Attribute in ContentRepositories die durch Gentics Content.Node befüllt werden können über den Tagmap Editor optimiert werden. Attribute in eigenständigen ContentRepositories können mithilfe folgender » FAQ optimiert werden.

Portlet Caches
In den Portletdescriptoren kontrollieren ob Portletcaches bei allen möglichen Portlets verwendet werden:
Beispiel 5min: <expiration-cache>300</expiration-cache>

Java Memory
Kontrollieren ob die JVM mit ausreichend maximalem und initialem Arbeitsspeicher gestartet wird:
Beispiel 1.5GB: java -Xmx1500M -Xms1500M

Expressionparser verwenden
Ab Gentics Portal.Node Version 3.3 steht der neue Expressionparser zur Verfügung, der wesentliche Geschwindigkeitsvorteile gegenüber dem alten Ruleparser hat. Der Expressionparser ist standardmäßig aktiviert. Bei einem Upgrade der Implementierung muß man die » Migrationsanleitung vom alten RuleParser zum neuen ExpressionParser beachten.

Reactions auf Expressionparser umstellen
Wenn man Reactions im "alten Stil" (mehrere Zuweisungen in verschiedenen Zeilen) verwendet, dann kann hier der Cache des Expressionparsers nicht voll greifen. Dies kann verhindert werden, indem die Reaction ganz auf den Expressionparser umgestellt wird: um alle Zuweisungen wird ein do() herumgelegt, und die einzelnen Zuweisungen voneinander durch Beistriche getrennt.
Also z.B. statt:
  <reaction event="...">
portal.pboxes.main.moduleid = "MyPortlet"
portal.pboxes.main.windowstate = "maximized"
</reaction>
verwendet man:
  <reaction event="...">
do(
portal.pboxes.main.moduleid = "MyPortlet",
portal.pboxes.main.windowstate = "maximized"
)
</reaction>

Viewreferences deaktivieren
Sie können den Speicherverbrauch deutlich reduzieren, indem Sie die Viewreferences deaktivieren. Dieses Feature ist deprecated und daher nicht mehr verwendet werden. Um dieses Feature zu deaktivieren, sollten Sie in der Portalkonfiguration in General-Section unter Parameters
  <parameter id="portal.viewplugin.disableviewreferences">true</parameter>
hinzufügen. Genauere Informationen finden Sie im Gentics Portal.Node Manual unter dem Stichwort "disableviewreferences".

Suchstichworte: beschleunigen, optimieren, performance, tuning, langsam

Template Engine 2 für Portaltemplate deaktivieren
Die Template Engine 2 (Velocity) für das Portaltemplate zu aktivieren ist, wie auch in der Dokumentation erwähnt, rechenintensiv, da das Template bei jedem Request, nachdem die Portlets gerendert wurden, geparsed wird. Zum Deaktivieren setzen Sie dazu den Portal-Parameter "portal.template.templateengine2" auf "false". Detailinformationen dazu finden Sie in der Gentics Portal.Node Reference unter dem Suchstichwort "Portal template parameters". Ab Gentics Portal.Node 4, können Sie Portalpages zur flexibleren und performanten Implementierung Ihrer Portaltemplates nutzen.

catalina.out
Auf Fehlermeldungen kontrollieren und diese beheben.
Ein hilfreicher Eintrag dazu ist in der Referenz unter dem Indexterm "Cache" zu finden.

Cache ausreichend groß dimensionieren
In der cache.ccf Datei muss die Anzahl der MaxObjects definiert sein.
Danach kontrollieren ob die Items den Maximal Wert schon erreicht haben und gegebenfalls den Wert in der cache.ccf hochsetzen.
Genauere Infos sind am besten in der Referenz unter dem Indexterm "Profiler" zu finden.



Seite drucken
Seite empfehlen


Downloads & Links