SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
Open Source IT-Dienstleister
Performanceoptimierung
Allgemeine Regeln und
Werkzeuge (Liferay-Portal)
Konstantinos Kododimos
Folie: 2 • © comundus GmbH 4. November 2014 • www.comundus.com
Performance
Vorteil:
Extrem schnell
Nachteil:
Nur eine Person
transportieren
Folie: 3 • © comundus GmbH 4. November 2014 • www.comundus.com
Viele Daten und Benutzer
Vorteil:
Viele Menschen
transportieren
Nachteil:
Sehr langsam
Folie: 4 • © comundus GmbH 4. November 2014 • www.comundus.com
Studie – Ausstieg von Webseiten
Quelle: http://www.seo2b.de/blog/id-5-tipps-fuer-mobile-seo-im-m-commerce.html
Folie: 5 • © comundus GmbH 4. November 2014 • www.comundus.com
Performance mit vielen Daten und Benutzer
Vorteil:
• Viele Menschen
transportieren
• Extrem schnell
• Modernes
Design
• Kein ICE 
Folie: 6 • © comundus GmbH 4. November 2014 • www.comundus.com
• Regel 1 - Lege die Performanceziele am Anfang des Projektes fest
• Welche Hardware wird bereitgestellt?
• Wann sind die Spitzenzeiten?
• Wann treten Dauerbelastungen auf?
• Welche Integrationspunkte bzw. Schnittstellen werde ich benötigen?
• Identifiziere potenzielle
Risiken frühzeitig!
Entwicklerregeln für eine bessere Performance
Folie: 7 • © comundus GmbH 4. November 2014 • www.comundus.com
• Regel 2 – Hardware ist endlich
Entwicklerregeln für eine bessere Performance
Folie: 8 • © comundus GmbH 4. November 2014 • www.comundus.com
• Regel 3 – Erweitere deine Trickkiste
• Schau dir auch andere Tools an
• Ist die Art wie du entwickelts noch Up To Date?
Entwicklerregeln für eine bessere Performance
Folie: 9 • © comundus GmbH 4. November 2014 • www.comundus.com
• Regel 4 – Schreibe keinen schlechten Quellcode
• Keine Zeit – Keine Ausrede
• Junit
• Reviews !!!
• Sonarqube – Qualität des Sourcecode prüfen
• http://www.sonarqube.org/
• Konventionen einhalten – so gut es geht
Entwicklerregeln für eine bessere Performance
Folie: 10 • © comundus GmbH 4. November 2014 • www.comundus.com
• Regel 5 – Teste dein Programm
• Junit
• Mocks
• Webstress-Tools
• JMeter
• http://www.opensourcetesting.org/performance.php
• Reviews
• Sonarqube – Qualität des Sourcecode prüfen
• http://www.sonarqube.org/
Entwicklerregeln für eine bessere Performance
Folie: 11 • © comundus GmbH 4. November 2014 • www.comundus.com
Liferay Portal ist eine Standard Java 2 Enterprise Edition - J2EE-
Anwendung. Diese Anwendung wird auf dem Application Server
ausgeführt, welche in Java Virtual Machine (JVM) läuft, die wiederum als
Standard-Anwendung im Betriebssystem läuft.
Liferay Portal – Zwiebelmodell
Folie: 12 • © comundus GmbH 4. November 2014 • www.comundus.com
• Prozessor monitoring
• System Ladezeiten
• System Resourcen
• CPU
• Mem
• HDD
• Netzwerk
• Linux
• vmstat -t 1
• netstat -nlpt
Liferay Portal – Betriebssystem
Folie: 13 • © comundus GmbH 4. November 2014 • www.comundus.com
• Linux
• vmstat -t 1
• gibt tabellarisch Auskunft über Prozesse, Arbeitsspeicher, Auslagerung
sowie Festplatten- und Prozessor-Aktivitäten
• Netstat
• Diagnose-Werkzeug, mit dem man verschiedene Informationen über den
Status der Netzwerkschnittstelle(n) in Erfahrung bringen kann
Liferay Portal – Betriebssystem
Folie: 14 • © comundus GmbH 4. November 2014 • www.comundus.com
• Garbage Collector configuration
• Serial Collector – Standard Collector im JDK
• Guter Collector für Desktop basierte Applikationen, die auf einem Prozessor
laufen
• Parallel Collector
• Guter Collector für Server basierte System, die auf mehreren Prozessoren
laufen
• Concurrent Collector
Liferay Portal – Java Virtual Machine
Folie: 15 • © comundus GmbH 4. November 2014 • www.comundus.com
• Heap configuration
• Einstellungen
• NewSize, MaxNewSize:
+UseParNewGC:
+UseConcMarkSweepGC:
+CMSParallelRemarkEnabled:
ServivorRatio:
ParallelGCThreads:
• Beispiel:
JAVA_OPTS="$JAVA_OPTS -XX:NewSize=700m -XX:MaxNewSize=700m -Xms2048m
-Xmx2048m -XX:MaxPermSize=128m -XX:+UseParNewGC -XX: +UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=20 -XX:ParallelGCThreads=8"
Liferay Portal – Java Virtual Machine
Folie: 16 • © comundus GmbH 4. November 2014 • www.comundus.com
• Logs – Log4J Einstellungen
• Admin Console
• Monitoring Apps
• Datenbank Einstellungen Anpassen !!!
• JNDI Schnittstelle für die Verbindung zur DB
verwenden
• Datenbank connection pool size sollte ungefähr
20 bis 30 % der Thread Pool size sein
• Überprüft die eingestellten Connections in der JNDI config (Root.xml) mit der
eurer DB
• JNDI maxActive="750" maxWait="10000„ maxIdle="200" minIdle="30„
• Überprüft in …/mysql/my.cnf die -> max_connections=750
• Benutzt Profiling Tool
Liferay Portal – Application Server und Datenbank
Folie: 17 • © comundus GmbH 4. November 2014 • www.comundus.com
• Überprüfe den Zugriff auf die Liferay DB-Tabellen
• Überprüfe auf welche Tabellen deine Anwendungen zugreifen
• Nur primary keys der einzelnen Liferay Tabelle sind indexiert
• Indexiere die benötigten Felder der Tabellen
• Die Liferay …ServiceUtil Klassen greifen auf die Datenbank zu
• Wird die Klasse in einer längeren for Schleife genutzt, entstehen
Perfomancenprobleme -> suche nach einer besseren Lösung
• Abfrage von Expando Felder evtl. über Solr abfragen anstatt über for Schleife
• Anstatt einzelne JournalArticle auf eine Expando Feld abzufragen, dies über
eine Solr abfragen auslesen z.B.
BooleanQuery searchExpando = BooleanQueryFactoryUtil.create(searchContext);
searchExpando.addTerm("expando/custom_fields/changes", "Änderung");
searchExpando.addTerm("expando/custom_fields/changes", "Neu");
this.searchQuery.add(searchExpando, BooleanClauseOccur.MUST);
Liferay Portal – Liferay Portal
Folie: 18 • © comundus GmbH 4. November 2014 • www.comundus.com
• Schaltet nicht benötigte Servlet Filter aus
• CAS filter - CAS for Single Sign-On
• NTLM SSO filter - users authenticating via NTLM
• OpenSSO filter - OpenSSO für Single Sign-On
• SharePoint - functionality for saving documents directly to the portal
• GZip - compress HTTP responses using GZip compression
• Strip - remove blank lines from the generated response
• ValidHtml - add JavaScript out of the body tag to improve the page rendering
performance
Liferay Portal – Liferay Portal
Folie: 19 • © comundus GmbH 4. November 2014 • www.comundus.com
• Passt die Lucene Indexierung an
• Standardmäßig ist Liferay so konfiguriert, das bei jedem
Commit Indexänderung auf dem Dateisystem vorgenommen
werden
• Je nach Inhalt können diese Dateien große Dateien oder viele
kleine Dateien sein
• Wenn viele Dateien veröffentlicht und geladen werden müssen, dann passt in
der portal-ext.properties folgende Werte an - z.B.
• lucene.commit.batch.size=10000
• lucene.commit.batch.size=10000
• lucene.commit.time.interval=300000
• Der beste Weg ist aber, für die Suche eine seperate Umgebung aufzubauen
wie z.B. Solr.
Liferay Portal – Liferay Portal
Folie: 20 • © comundus GmbH 4. November 2014 • www.comundus.com
• HTML Positionierung von Elementen
• Was ist an diesem Code falsch
</script>
</html>
<script language=javascript>
if(window.abc_p==null)
document.write("<script language=javascript src=http://test.com/a/lib/ab/ab_1.0.0.js></script>");
</script>
• Das Javascript hinter dem HTML Code
• In der Datei iferay-portlet.xml kann für jedes Portlet eingestellt werden, wo die
JavaScripte liegen sollen:
• <footer-portlet-javascript>/html/portlet/message_boards/javascript.js</footer-portlet-javascript>
• Oder
• <header-portlet-javascript>/html/portlet/message_boards/javascript.js</header-portlet-javascript>
Liferay Portal – Liferay Portal
Folie: 21 • © comundus GmbH 4. November 2014 • www.comundus.com
Kontakt
comundus Ansprechpartner
Konstantinos Kododimos
Senior IT-Berater
E-Mail:
K.Kododimos@comundus.com
Tel: + 49 7151 94421-10
www.comundus.com

Weitere ähnliche Inhalte

Was ist angesagt?

Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishSpeedPartner GmbH
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...Peter Hecker
 
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishSpeedPartner GmbH
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureJan Hentschel
 
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud StackInfracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud StackEdmund Siegfried Haselwanter
 
Startups in „Die Höhle der Löwen“ - SEODAY 2016
Startups in „Die Höhle der Löwen“ - SEODAY 2016Startups in „Die Höhle der Löwen“ - SEODAY 2016
Startups in „Die Höhle der Löwen“ - SEODAY 2016Dennis Oderwald
 
Bidirektionale Verbindungen für Webanwendungen
Bidirektionale Verbindungen für WebanwendungenBidirektionale Verbindungen für Webanwendungen
Bidirektionale Verbindungen für WebanwendungenMarco Rico Gomez
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...Peter Hecker
 
PHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-PerformancePHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-PerformanceNico Steiner
 
LinuxTag 2008 - Virtuelle Cold-Standby Server mit Linux
LinuxTag 2008 - Virtuelle Cold-Standby Server mit LinuxLinuxTag 2008 - Virtuelle Cold-Standby Server mit Linux
LinuxTag 2008 - Virtuelle Cold-Standby Server mit LinuxSchlomo Schapiro
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?inovex GmbH
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerSteven Grzbielok
 
Top 10 Internet Trends 2005
Top 10 Internet Trends 2005Top 10 Internet Trends 2005
Top 10 Internet Trends 2005Jürg Stuker
 
openstack Übersicht @GPN15
openstack Übersicht @GPN15openstack Übersicht @GPN15
openstack Übersicht @GPN15m1no
 

Was ist angesagt? (18)

Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 
Web-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnishWeb-Performance-Optimierung mit varnish
Web-Performance-Optimierung mit varnish
 
Dockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloudDockerize It - Mit apex in die amazon cloud
Dockerize It - Mit apex in die amazon cloud
 
MongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows AzureMongoDB on Linux VM in Windows Azure
MongoDB on Linux VM in Windows Azure
 
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud StackInfracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
 
Node.js
Node.jsNode.js
Node.js
 
Startups in „Die Höhle der Löwen“ - SEODAY 2016
Startups in „Die Höhle der Löwen“ - SEODAY 2016Startups in „Die Höhle der Löwen“ - SEODAY 2016
Startups in „Die Höhle der Löwen“ - SEODAY 2016
 
Bidirektionale Verbindungen für Webanwendungen
Bidirektionale Verbindungen für WebanwendungenBidirektionale Verbindungen für Webanwendungen
Bidirektionale Verbindungen für Webanwendungen
 
HTML5-Features
HTML5-FeaturesHTML5-Features
HTML5-Features
 
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
JavaScript goes Enterprise - Node.js-Anwendungen mit Visual Studio und den No...
 
PHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-PerformancePHP Kongress 2010 - Web-Performance
PHP Kongress 2010 - Web-Performance
 
LinuxTag 2008 - Virtuelle Cold-Standby Server mit Linux
LinuxTag 2008 - Virtuelle Cold-Standby Server mit LinuxLinuxTag 2008 - Virtuelle Cold-Standby Server mit Linux
LinuxTag 2008 - Virtuelle Cold-Standby Server mit Linux
 
"git.net" gibt's nicht?
"git.net" gibt's nicht?"git.net" gibt's nicht?
"git.net" gibt's nicht?
 
Nginx
NginxNginx
Nginx
 
Boost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with DockerBoost your APEX Deployment and Provisioning with Docker
Boost your APEX Deployment and Provisioning with Docker
 
Top 10 Internet Trends 2005
Top 10 Internet Trends 2005Top 10 Internet Trends 2005
Top 10 Internet Trends 2005
 
openstack Übersicht @GPN15
openstack Übersicht @GPN15openstack Übersicht @GPN15
openstack Übersicht @GPN15
 

Andere mochten auch

Mantenimiento avisos y fachada
Mantenimiento avisos y fachadaMantenimiento avisos y fachada
Mantenimiento avisos y fachadalocal publicidad
 
ein SCHOENER MP3 PLAYER YP-S3.3
ein SCHOENER MP3 PLAYER YP-S3.3ein SCHOENER MP3 PLAYER YP-S3.3
ein SCHOENER MP3 PLAYER YP-S3.3julia135
 
Mensch und Computer Konferenz 2013
Mensch und Computer Konferenz 2013Mensch und Computer Konferenz 2013
Mensch und Computer Konferenz 2013Christiane Schmidt
 
Die operativen Herausforderungen bei der Weiterentwicklung von Einzelsatellit...
Die operativen Herausforderungen bei der Weiterentwicklung von Einzelsatellit...Die operativen Herausforderungen bei der Weiterentwicklung von Einzelsatellit...
Die operativen Herausforderungen bei der Weiterentwicklung von Einzelsatellit...Finmeccanica
 
130228 schwerpunktbereiche -pädagogischer nachmittag vms lauterach
130228 schwerpunktbereiche -pädagogischer nachmittag vms lauterach130228 schwerpunktbereiche -pädagogischer nachmittag vms lauterach
130228 schwerpunktbereiche -pädagogischer nachmittag vms lauterachrursl
 
Medidas coercitivas personales en el ncpp henrry
Medidas coercitivas personales en el ncpp henrryMedidas coercitivas personales en el ncpp henrry
Medidas coercitivas personales en el ncpp henrryHenrry Coronado
 
Protocolo informe de_evaluacion_de_la_asignatura___autoinforme
Protocolo informe de_evaluacion_de_la_asignatura___autoinformeProtocolo informe de_evaluacion_de_la_asignatura___autoinforme
Protocolo informe de_evaluacion_de_la_asignatura___autoinformeMonserrat Paz
 
VIEJAS GLORIAS
VIEJAS GLORIASVIEJAS GLORIAS
VIEJAS GLORIASGustavo
 
120 jahre humboldtschule
120 jahre humboldtschule120 jahre humboldtschule
120 jahre humboldtschulecpablog
 
Ensamblaje de la laptop
Ensamblaje de la laptopEnsamblaje de la laptop
Ensamblaje de la laptopadripaul
 

Andere mochten auch (20)

Sistema nervioso
Sistema nerviosoSistema nervioso
Sistema nervioso
 
Radioisótopos (1)
Radioisótopos (1)Radioisótopos (1)
Radioisótopos (1)
 
Mantenimiento avisos y fachada
Mantenimiento avisos y fachadaMantenimiento avisos y fachada
Mantenimiento avisos y fachada
 
ein SCHOENER MP3 PLAYER YP-S3.3
ein SCHOENER MP3 PLAYER YP-S3.3ein SCHOENER MP3 PLAYER YP-S3.3
ein SCHOENER MP3 PLAYER YP-S3.3
 
Ashwini
AshwiniAshwini
Ashwini
 
Practica 20
Practica 20Practica 20
Practica 20
 
Mensch und Computer Konferenz 2013
Mensch und Computer Konferenz 2013Mensch und Computer Konferenz 2013
Mensch und Computer Konferenz 2013
 
Die operativen Herausforderungen bei der Weiterentwicklung von Einzelsatellit...
Die operativen Herausforderungen bei der Weiterentwicklung von Einzelsatellit...Die operativen Herausforderungen bei der Weiterentwicklung von Einzelsatellit...
Die operativen Herausforderungen bei der Weiterentwicklung von Einzelsatellit...
 
Fleurs Rossignol
Fleurs RossignolFleurs Rossignol
Fleurs Rossignol
 
Piramide nutricional
Piramide nutricionalPiramide nutricional
Piramide nutricional
 
130228 schwerpunktbereiche -pädagogischer nachmittag vms lauterach
130228 schwerpunktbereiche -pädagogischer nachmittag vms lauterach130228 schwerpunktbereiche -pädagogischer nachmittag vms lauterach
130228 schwerpunktbereiche -pädagogischer nachmittag vms lauterach
 
Referendum
ReferendumReferendum
Referendum
 
Medidas coercitivas personales en el ncpp henrry
Medidas coercitivas personales en el ncpp henrryMedidas coercitivas personales en el ncpp henrry
Medidas coercitivas personales en el ncpp henrry
 
Protocolo informe de_evaluacion_de_la_asignatura___autoinforme
Protocolo informe de_evaluacion_de_la_asignatura___autoinformeProtocolo informe de_evaluacion_de_la_asignatura___autoinforme
Protocolo informe de_evaluacion_de_la_asignatura___autoinforme
 
VIEJAS GLORIAS
VIEJAS GLORIASVIEJAS GLORIAS
VIEJAS GLORIAS
 
An y dis sist. kendal (c1)
An y dis sist. kendal (c1)An y dis sist. kendal (c1)
An y dis sist. kendal (c1)
 
120 jahre humboldtschule
120 jahre humboldtschule120 jahre humboldtschule
120 jahre humboldtschule
 
Ensamblaje de la laptop
Ensamblaje de la laptopEnsamblaje de la laptop
Ensamblaje de la laptop
 
Cork
CorkCork
Cork
 
Köln
KölnKöln
Köln
 

Ähnlich wie Tipps zur Performanceoptimierung für Liferay Portal

HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien DNUG e.V.
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)André Krämer
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftDavid Schneider
 
DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenFotiosKaramitsos
 
Gentics Webinar: IT-Kosten sparen mit Unified Content & Collaboration Archite...
Gentics Webinar: IT-Kosten sparen mit Unified Content & Collaboration Archite...Gentics Webinar: IT-Kosten sparen mit Unified Content & Collaboration Archite...
Gentics Webinar: IT-Kosten sparen mit Unified Content & Collaboration Archite...Manuel Aghamanoukjan
 
Ajax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schrittAjax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schrittdominion
 
DNUG Domino Day 2017 - ApplicationInsights & IBM Domino Doublecheck
DNUG Domino Day 2017 - ApplicationInsights & IBM Domino DoublecheckDNUG Domino Day 2017 - ApplicationInsights & IBM Domino Doublecheck
DNUG Domino Day 2017 - ApplicationInsights & IBM Domino DoublecheckChristoph Adler
 
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenPimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenDavid Schneider
 
AdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsightsAdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsightsChristoph Adler
 
AdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveAdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveKlaus Bild
 
Grundlagen puppet
Grundlagen puppetGrundlagen puppet
Grundlagen puppetinovex GmbH
 
Graphing mit Graphite (Webinar vom 06.11.2013)
Graphing mit Graphite (Webinar vom 06.11.2013)Graphing mit Graphite (Webinar vom 06.11.2013)
Graphing mit Graphite (Webinar vom 06.11.2013)NETWAYS
 
OSMC 2011 | Collectd in der großen weiten Welt - Anbindung des Datensammlers ...
OSMC 2011 | Collectd in der großen weiten Welt - Anbindung des Datensammlers ...OSMC 2011 | Collectd in der großen weiten Welt - Anbindung des Datensammlers ...
OSMC 2011 | Collectd in der großen weiten Welt - Anbindung des Datensammlers ...NETWAYS
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft AG
 
Domino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
Domino 12(.0.2) Lessons learned - DNUG Stammtisch HamburgDomino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
Domino 12(.0.2) Lessons learned - DNUG Stammtisch HamburgDNUG e.V.
 
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-adminsbccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-adminsICS User Group
 
Tipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections AdminsTipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections AdminsKlaus Bild
 

Ähnlich wie Tipps zur Performanceoptimierung für Liferay Portal (20)

HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
HCL Domino 14 - Leap 1.1.2 - DNUG Stammtisch Wien
 
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
HTML5-Performance: So rennt Ihre App und nicht Ihre Anwender (weg)
 
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
XPages: Performance-Optimierung  - Ulrich Krause (eknori) SNoUG 2013XPages: Performance-Optimierung  - Ulrich Krause (eknori) SNoUG 2013
XPages: Performance-Optimierung - Ulrich Krause (eknori) SNoUG 2013
 
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die ZukunftSharePointCommunity.ch SharePoint Lösungen für die Zukunft
SharePointCommunity.ch SharePoint Lösungen für die Zukunft
 
Ant im Detail
Ant im DetailAnt im Detail
Ant im Detail
 
DevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigenDevOps: Automatisieren, was wir predigen
DevOps: Automatisieren, was wir predigen
 
Gentics Webinar: IT-Kosten sparen mit Unified Content & Collaboration Archite...
Gentics Webinar: IT-Kosten sparen mit Unified Content & Collaboration Archite...Gentics Webinar: IT-Kosten sparen mit Unified Content & Collaboration Archite...
Gentics Webinar: IT-Kosten sparen mit Unified Content & Collaboration Archite...
 
Ajax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schrittAjax in domino web-anwendungen - der nächste schritt
Ajax in domino web-anwendungen - der nächste schritt
 
DNUG Domino Day 2017 - ApplicationInsights & IBM Domino Doublecheck
DNUG Domino Day 2017 - ApplicationInsights & IBM Domino DoublecheckDNUG Domino Day 2017 - ApplicationInsights & IBM Domino Doublecheck
DNUG Domino Day 2017 - ApplicationInsights & IBM Domino Doublecheck
 
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und behebenPimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
Pimp My SharePoint - Performanceprobleme vorbeugen, analysieren und beheben
 
AdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsightsAdminCamp2017 - ApplicationInsights
AdminCamp2017 - ApplicationInsights
 
AdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep DiveAdminCamp 14 - IBM Connections Deep Dive
AdminCamp 14 - IBM Connections Deep Dive
 
Grundlagen puppet
Grundlagen puppetGrundlagen puppet
Grundlagen puppet
 
Graphing mit Graphite (Webinar vom 06.11.2013)
Graphing mit Graphite (Webinar vom 06.11.2013)Graphing mit Graphite (Webinar vom 06.11.2013)
Graphing mit Graphite (Webinar vom 06.11.2013)
 
Ant Maven
Ant MavenAnt Maven
Ant Maven
 
OSMC 2011 | Collectd in der großen weiten Welt - Anbindung des Datensammlers ...
OSMC 2011 | Collectd in der großen weiten Welt - Anbindung des Datensammlers ...OSMC 2011 | Collectd in der großen weiten Welt - Anbindung des Datensammlers ...
OSMC 2011 | Collectd in der großen weiten Welt - Anbindung des Datensammlers ...
 
Creasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform AppsCreasoft-Akademie - Mobile Multiplattform Apps
Creasoft-Akademie - Mobile Multiplattform Apps
 
Domino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
Domino 12(.0.2) Lessons learned - DNUG Stammtisch HamburgDomino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
Domino 12(.0.2) Lessons learned - DNUG Stammtisch Hamburg
 
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-adminsbccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
bccon-2014 adm01 tipps-und-skripts-aus-dem-leben-eines-ibm-connections-admins
 
Tipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections AdminsTipps und Skripts aus dem Leben eines Connections Admins
Tipps und Skripts aus dem Leben eines Connections Admins
 

Mehr von Stefan Hilpp

comundus Kundenportal mit Liferay
comundus Kundenportal mit Liferaycomundus Kundenportal mit Liferay
comundus Kundenportal mit LiferayStefan Hilpp
 
Kundenportale als Schnittstellen des digitalen und wirtschaftlichen Miteinanders
Kundenportale als Schnittstellen des digitalen und wirtschaftlichen MiteinandersKundenportale als Schnittstellen des digitalen und wirtschaftlichen Miteinanders
Kundenportale als Schnittstellen des digitalen und wirtschaftlichen MiteinandersStefan Hilpp
 
Interaktives Zusammenarbeiten mit Collaboration
Interaktives Zusammenarbeiten mit CollaborationInteraktives Zusammenarbeiten mit Collaboration
Interaktives Zusammenarbeiten mit CollaborationStefan Hilpp
 
Anleitung zur Installation von Tomcat für Opencms
Anleitung zur Installation von Tomcat für OpencmsAnleitung zur Installation von Tomcat für Opencms
Anleitung zur Installation von Tomcat für OpencmsStefan Hilpp
 
Comundus beantwortet die Frage: Was steckt hinter einem QR Code?
Comundus beantwortet die Frage: Was steckt hinter einem QR Code?Comundus beantwortet die Frage: Was steckt hinter einem QR Code?
Comundus beantwortet die Frage: Was steckt hinter einem QR Code?Stefan Hilpp
 
Comundus liferay 6.2
Comundus liferay 6.2Comundus liferay 6.2
Comundus liferay 6.2Stefan Hilpp
 

Mehr von Stefan Hilpp (6)

comundus Kundenportal mit Liferay
comundus Kundenportal mit Liferaycomundus Kundenportal mit Liferay
comundus Kundenportal mit Liferay
 
Kundenportale als Schnittstellen des digitalen und wirtschaftlichen Miteinanders
Kundenportale als Schnittstellen des digitalen und wirtschaftlichen MiteinandersKundenportale als Schnittstellen des digitalen und wirtschaftlichen Miteinanders
Kundenportale als Schnittstellen des digitalen und wirtschaftlichen Miteinanders
 
Interaktives Zusammenarbeiten mit Collaboration
Interaktives Zusammenarbeiten mit CollaborationInteraktives Zusammenarbeiten mit Collaboration
Interaktives Zusammenarbeiten mit Collaboration
 
Anleitung zur Installation von Tomcat für Opencms
Anleitung zur Installation von Tomcat für OpencmsAnleitung zur Installation von Tomcat für Opencms
Anleitung zur Installation von Tomcat für Opencms
 
Comundus beantwortet die Frage: Was steckt hinter einem QR Code?
Comundus beantwortet die Frage: Was steckt hinter einem QR Code?Comundus beantwortet die Frage: Was steckt hinter einem QR Code?
Comundus beantwortet die Frage: Was steckt hinter einem QR Code?
 
Comundus liferay 6.2
Comundus liferay 6.2Comundus liferay 6.2
Comundus liferay 6.2
 

Tipps zur Performanceoptimierung für Liferay Portal

  • 1. Open Source IT-Dienstleister Performanceoptimierung Allgemeine Regeln und Werkzeuge (Liferay-Portal) Konstantinos Kododimos
  • 2. Folie: 2 • © comundus GmbH 4. November 2014 • www.comundus.com Performance Vorteil: Extrem schnell Nachteil: Nur eine Person transportieren
  • 3. Folie: 3 • © comundus GmbH 4. November 2014 • www.comundus.com Viele Daten und Benutzer Vorteil: Viele Menschen transportieren Nachteil: Sehr langsam
  • 4. Folie: 4 • © comundus GmbH 4. November 2014 • www.comundus.com Studie – Ausstieg von Webseiten Quelle: http://www.seo2b.de/blog/id-5-tipps-fuer-mobile-seo-im-m-commerce.html
  • 5. Folie: 5 • © comundus GmbH 4. November 2014 • www.comundus.com Performance mit vielen Daten und Benutzer Vorteil: • Viele Menschen transportieren • Extrem schnell • Modernes Design • Kein ICE 
  • 6. Folie: 6 • © comundus GmbH 4. November 2014 • www.comundus.com • Regel 1 - Lege die Performanceziele am Anfang des Projektes fest • Welche Hardware wird bereitgestellt? • Wann sind die Spitzenzeiten? • Wann treten Dauerbelastungen auf? • Welche Integrationspunkte bzw. Schnittstellen werde ich benötigen? • Identifiziere potenzielle Risiken frühzeitig! Entwicklerregeln für eine bessere Performance
  • 7. Folie: 7 • © comundus GmbH 4. November 2014 • www.comundus.com • Regel 2 – Hardware ist endlich Entwicklerregeln für eine bessere Performance
  • 8. Folie: 8 • © comundus GmbH 4. November 2014 • www.comundus.com • Regel 3 – Erweitere deine Trickkiste • Schau dir auch andere Tools an • Ist die Art wie du entwickelts noch Up To Date? Entwicklerregeln für eine bessere Performance
  • 9. Folie: 9 • © comundus GmbH 4. November 2014 • www.comundus.com • Regel 4 – Schreibe keinen schlechten Quellcode • Keine Zeit – Keine Ausrede • Junit • Reviews !!! • Sonarqube – Qualität des Sourcecode prüfen • http://www.sonarqube.org/ • Konventionen einhalten – so gut es geht Entwicklerregeln für eine bessere Performance
  • 10. Folie: 10 • © comundus GmbH 4. November 2014 • www.comundus.com • Regel 5 – Teste dein Programm • Junit • Mocks • Webstress-Tools • JMeter • http://www.opensourcetesting.org/performance.php • Reviews • Sonarqube – Qualität des Sourcecode prüfen • http://www.sonarqube.org/ Entwicklerregeln für eine bessere Performance
  • 11. Folie: 11 • © comundus GmbH 4. November 2014 • www.comundus.com Liferay Portal ist eine Standard Java 2 Enterprise Edition - J2EE- Anwendung. Diese Anwendung wird auf dem Application Server ausgeführt, welche in Java Virtual Machine (JVM) läuft, die wiederum als Standard-Anwendung im Betriebssystem läuft. Liferay Portal – Zwiebelmodell
  • 12. Folie: 12 • © comundus GmbH 4. November 2014 • www.comundus.com • Prozessor monitoring • System Ladezeiten • System Resourcen • CPU • Mem • HDD • Netzwerk • Linux • vmstat -t 1 • netstat -nlpt Liferay Portal – Betriebssystem
  • 13. Folie: 13 • © comundus GmbH 4. November 2014 • www.comundus.com • Linux • vmstat -t 1 • gibt tabellarisch Auskunft über Prozesse, Arbeitsspeicher, Auslagerung sowie Festplatten- und Prozessor-Aktivitäten • Netstat • Diagnose-Werkzeug, mit dem man verschiedene Informationen über den Status der Netzwerkschnittstelle(n) in Erfahrung bringen kann Liferay Portal – Betriebssystem
  • 14. Folie: 14 • © comundus GmbH 4. November 2014 • www.comundus.com • Garbage Collector configuration • Serial Collector – Standard Collector im JDK • Guter Collector für Desktop basierte Applikationen, die auf einem Prozessor laufen • Parallel Collector • Guter Collector für Server basierte System, die auf mehreren Prozessoren laufen • Concurrent Collector Liferay Portal – Java Virtual Machine
  • 15. Folie: 15 • © comundus GmbH 4. November 2014 • www.comundus.com • Heap configuration • Einstellungen • NewSize, MaxNewSize: +UseParNewGC: +UseConcMarkSweepGC: +CMSParallelRemarkEnabled: ServivorRatio: ParallelGCThreads: • Beispiel: JAVA_OPTS="$JAVA_OPTS -XX:NewSize=700m -XX:MaxNewSize=700m -Xms2048m -Xmx2048m -XX:MaxPermSize=128m -XX:+UseParNewGC -XX: +UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=20 -XX:ParallelGCThreads=8" Liferay Portal – Java Virtual Machine
  • 16. Folie: 16 • © comundus GmbH 4. November 2014 • www.comundus.com • Logs – Log4J Einstellungen • Admin Console • Monitoring Apps • Datenbank Einstellungen Anpassen !!! • JNDI Schnittstelle für die Verbindung zur DB verwenden • Datenbank connection pool size sollte ungefähr 20 bis 30 % der Thread Pool size sein • Überprüft die eingestellten Connections in der JNDI config (Root.xml) mit der eurer DB • JNDI maxActive="750" maxWait="10000„ maxIdle="200" minIdle="30„ • Überprüft in …/mysql/my.cnf die -> max_connections=750 • Benutzt Profiling Tool Liferay Portal – Application Server und Datenbank
  • 17. Folie: 17 • © comundus GmbH 4. November 2014 • www.comundus.com • Überprüfe den Zugriff auf die Liferay DB-Tabellen • Überprüfe auf welche Tabellen deine Anwendungen zugreifen • Nur primary keys der einzelnen Liferay Tabelle sind indexiert • Indexiere die benötigten Felder der Tabellen • Die Liferay …ServiceUtil Klassen greifen auf die Datenbank zu • Wird die Klasse in einer längeren for Schleife genutzt, entstehen Perfomancenprobleme -> suche nach einer besseren Lösung • Abfrage von Expando Felder evtl. über Solr abfragen anstatt über for Schleife • Anstatt einzelne JournalArticle auf eine Expando Feld abzufragen, dies über eine Solr abfragen auslesen z.B. BooleanQuery searchExpando = BooleanQueryFactoryUtil.create(searchContext); searchExpando.addTerm("expando/custom_fields/changes", "Änderung"); searchExpando.addTerm("expando/custom_fields/changes", "Neu"); this.searchQuery.add(searchExpando, BooleanClauseOccur.MUST); Liferay Portal – Liferay Portal
  • 18. Folie: 18 • © comundus GmbH 4. November 2014 • www.comundus.com • Schaltet nicht benötigte Servlet Filter aus • CAS filter - CAS for Single Sign-On • NTLM SSO filter - users authenticating via NTLM • OpenSSO filter - OpenSSO für Single Sign-On • SharePoint - functionality for saving documents directly to the portal • GZip - compress HTTP responses using GZip compression • Strip - remove blank lines from the generated response • ValidHtml - add JavaScript out of the body tag to improve the page rendering performance Liferay Portal – Liferay Portal
  • 19. Folie: 19 • © comundus GmbH 4. November 2014 • www.comundus.com • Passt die Lucene Indexierung an • Standardmäßig ist Liferay so konfiguriert, das bei jedem Commit Indexänderung auf dem Dateisystem vorgenommen werden • Je nach Inhalt können diese Dateien große Dateien oder viele kleine Dateien sein • Wenn viele Dateien veröffentlicht und geladen werden müssen, dann passt in der portal-ext.properties folgende Werte an - z.B. • lucene.commit.batch.size=10000 • lucene.commit.batch.size=10000 • lucene.commit.time.interval=300000 • Der beste Weg ist aber, für die Suche eine seperate Umgebung aufzubauen wie z.B. Solr. Liferay Portal – Liferay Portal
  • 20. Folie: 20 • © comundus GmbH 4. November 2014 • www.comundus.com • HTML Positionierung von Elementen • Was ist an diesem Code falsch </script> </html> <script language=javascript> if(window.abc_p==null) document.write("<script language=javascript src=http://test.com/a/lib/ab/ab_1.0.0.js></script>"); </script> • Das Javascript hinter dem HTML Code • In der Datei iferay-portlet.xml kann für jedes Portlet eingestellt werden, wo die JavaScripte liegen sollen: • <footer-portlet-javascript>/html/portlet/message_boards/javascript.js</footer-portlet-javascript> • Oder • <header-portlet-javascript>/html/portlet/message_boards/javascript.js</header-portlet-javascript> Liferay Portal – Liferay Portal
  • 21. Folie: 21 • © comundus GmbH 4. November 2014 • www.comundus.com Kontakt comundus Ansprechpartner Konstantinos Kododimos Senior IT-Berater E-Mail: K.Kododimos@comundus.com Tel: + 49 7151 94421-10 www.comundus.com