Klappe auf! Was macht die JVM denn da?

Ähnliche Dokumente
JVM Monitoring. Verfügbarkeit und Performance aus Sicht der Java Virtual Machine. Tobias Frech

Eins für alles? Monitoring und Profiling mit VisualVM

Module für eine Java-Administrationsschulung

Java Performance Tuning

Welche GC-Strategie ist die richtige?

Java Monitoring und Troubleshooting. Rainer Jung, Geschäftsführer kippdata informationstechnologie GmbH

Performance Tuning

Einführung in den NetBeans Profiler

Übung 8: Semaphore in Java (eigene Implementierung)

Tanuki Service Wrapper 101. JVM Verwaltung mit der Community Edition. Alexander Pacnik Karlsruhe,

Javaaktuell. Oracle und die Zukunft von Java. Sonderdruck. Das ijug Magazin. Java aktuell das Magazin für die Java-Community

JBoss AS 7. Installation, Konfiguration und Betrieb. Alexander Pacnik Karlsruhe,

Dominik Helleberg inovex GmbH. Android-Enterprise- Integration

Cloud Computing. Betriebssicherheit von Cloud Umgebungen C O N N E C T I N G B U S I N E S S & T E C H N O L O G Y

SMARTentry Notification

Caching. Hintergründe, Patterns &" Best Practices" für Business Anwendungen

Endlich! Mission Control und Flight Recorder für Hotspot

Informatik II Übung 05. Benjamin Hepp 3 April 2017

Möge das Abenteuer beginnen!

Inhaltsverzeichnis. 2.2 Grundlagen der UML Zusammenfassung... 53

Die Scala Entwicklungsumgebung. L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung

JSF-Frameworks. Mit. Java Persistence API. Sonderdruck. Im Komponenten-Dschungel PLUS. Einführung in den neuen Java- Persistenz-Standard

Instrumentation von Android Anwendungen mit ExplorViz

Kurzanleitung Eclipse

Application Performance Management. Auch eine Frage des Netzwerkes?

Markus Heinisch Architekt Nürnberg,

Agenda. Informatik I WS05/06 Folien von Tobias Dezulian

swissdec-adapter Installationsanleitung für Patchrelease Versionsgeschichte Version Marco Stettler Patchversion 2.

Java Garbage Collector: Funktionsweise und Optimierung. Mathias Dolag Prof. Dr. Peter Mandl (DOAG 2012, )

Version 0.3. Installation von MinGW und Eclipse CDT

Entwicklung einer Java Add-In Servertask

Effiziente Java Programmierung

Im Kapitel Resourc Manager werden die verschiedenen Möglichkeiten der Überwachung von Messwerten eines Server oder Benutzers erläutert.

Javaaktuell. Sonderdruck. im Aufwind. iii iii iii ijug. iii. VisualVM Unbekannte Kostbarkeiten des SDK. Grails Die Suche ist vorbei

Smartphone Entwicklung mit Android und Java

MOUNT10 StoragePlatform Console

- dynamisches Laden -

LEO BW wird mobil! Ein Portal Relaunch unter den Vorzeichen von Usability und Responsivität

Ora Education GmbH. Lehrgang: Oracle WebLogic Server 11g: Advanced Administration

Konfiguration Zentyal 3.3 Inhaltsverzeichnis

Command-Line. Line-Tools und Unix-Umgebungen Umgebungen unter Windows

Zünde den Turbo-Boost! (LOB-Migration beschleunigt)

Webcast: Java Nagios Monitoring in der Praxis

Open-Source-Werkzeugkasten für Software-QS :15-11:15 Uhr Zagrebsaal I

Performance Tuning and Optimizing SQL Databases MOC 10987

7 Assemblies. Anwendungen (.exe) bzw. Anwendungskomponenten (.dll) für.net Portable Execution (PE) Files

Ferienakademie Programmierkonzepte für Multi-Core Rechner. Tools: Profiler

Performance mit Forms 11gR2 Weblogic 10.3.x

Brownbag: Java Applikationen und die JVM für Ops. Christian Rohmann Köln,

Archive / Backup System für OpenVMS

Ein ganz normaler Tag. Eclipse und Ich

Spring Dynamic Modules for OSGi Service Platforms

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Installation - Optimierung und Fehleranalyse

LDom Performance optimieren

Oliver Brinkmann Java Swing-Applikationen & JApplets (mit NetBeans)

Hinweise zu Java auf dem Mac:

SemTalk Services. SemTalk UserMeeting

SPARC LDom Performance optimieren

Installation Anleitung für JTheseus und MS SQL Server 2000

Folgen Sie diesen Anweisungen Schritt für Schritt, um das ZETA IEC Terminal zu installieren und in Betrieb zu nehmen.

SAP Installation auf Windows Server 2008 R2 Enterprise

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT

Embedded So)ware. Einrichten der Arbeitsumgebung

Availability Manager Overview

BMC Control M Tipps & Tricks 1. Martin Dienstl, BMC Software martin_dienstl@bmc.com

Berner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi

CADEMIA: Einrichtung Ihres Computers unter Mac OS X

Microsoft.NET Framework & Component Object Model. ein Vortrag von Florian Steuber

Network-Attached Storage mit FreeNAS

4D Server v12 64-bit Version BETA VERSION

JIRA-Speicher erhoehen

Java RMI Remote Method Invocation

ColdFusion Konfiguration für den Betrieb mit hyscore. ColdFusion Administrator. Notwendige Konfiguration für hyscore. PDF-Dokument: config_cf10.

Windows Cockpit Konfiguration Montag, 23. November :59

Performanceoptimierung

CADEMIA: Einrichtung Ihres Computers unter Windows

Laufzeitmanagement von OSGi Applikationen

Cloud Control und die Datenbank

AVO-Übung 1. Übungsszenario, Entwicklungswerkzeuge. Andreas I. Schmied

Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger

Automatisierte Serververwaltung mit Hilfe von Puppet

Installationsanleitung

Programmieren I. Die Programmiersprache Java. Institut für Angewandte Informatik

Internet Briefing. Developer Konferenz. Clientseitige Last- & Performancetesting. Namics.

i-net HelpDesk Erste Schritte

Application Performance Management

ZNS-GIT IPAdmin Tool Operation Manual for H.264 Network Camera and Encoder. Inhaltsverzeichnis. 1. Einführung Anforderungen...

TimeMachine. Installation und Konfiguration. Version 1.4. Stand Dokument: install.odt. Berger EDV Service Tulbeckstr.

EINRICHTEN EINER SQL-SICHERUNG FÜR BMD NTCS

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R2: Administration I

Durch einen kleinen Geldbetrag kann mehr Speicher dazu gekauft werden. Eines der Systeme mit guten Referenzen ist mydrive.

CONTROL-M. CONTROL-M Tipps&Tricks. Martin Dienstl Principal Software Consultant

German Metasploit Framework Tutorial 16. August 2005 dav


IBM DB2 für Linux/Unix/Windows Monitoring und Tuning

Versionsupdate von V auf V We automate your success

HERZLICH WILLKOMMEN SHAREPOINT DEEP DIVE FOR ADMINS IOZ AG 2

Schick statt altbacken Oberflächen-Modernisierung von Forms-Anwendungen

BusinessPlanner Installationsanleitung

Transkript:

Vortrag am 7.7.2016 auf dem Klappe auf! Was macht die JVM denn da? Tobias@Frech.info / @TobiasFrech

Tobias Frech Geschäftsführer der Frech IT GmbH Java-Administration, Betrieb von Java-Anwendungen, Bereitschaft (1st-3rd-Level) Architekturberatung für Performance, Verfügbarkeit und Fehlertoleranz 2

Klappe auf! By Norbert Schnitzler (Own work) [GFDL (http://www.gnu.org/copyleft/fdl.html) or CC-BY-SA-3.0 (http://creativecommons.org/licenses/by-sa/3.0/)], via Wikimedia Commons 3

Server -Setup Raspberry Pi 3 Browser JMeter HTTP SSH Elasticsearch Panama tobi@xps (192.168.0.1) JVM pi@pi3 (192.168.0.5) 4

Demo Anwendung mit JMeter unter Last setzen und analysieren 5

JDK Admin-Tools Console GUI jps jconsole jinfo jvisualvm jstack jstat jmap zukünftig: https://docs.oracle.com/vase/8/ docs/technotes/tools/ jcmd 6

JVM Tools Monitoring und Mgmt. jps: listet die verfügbaren JVMs auf jinfo: Informationen über Parameter und JVMEnvironment jstat: Informationen über Classloading, Kompilierung und Garbage Collection jstack: Liste aller Threads mit momentaner Aktivität jmap: Histogramm und Dump des JVMSpeichers 7

Performance-Troubleshooting Analyse OSRessourcen CPU RAM Disk Prozesse CPU-Last Garbage Collection (GC) Analyse jstat, jmap Threaddump Analyse jstack, Sampler Ursache beheben oder kompensierende Maßnahmen: externe Systeme, Locks, Ursache bekannt? Ursache: GC? MemoryAnpassung, GC-Tuning, Memory-Analyse (Histogramm, Dump) Hybride Threaddump Analyse top -H, jstack 8

Tools für OS-Ressourcen CPU: top RAM: free Disk: df, du Prozesse: ps Langzeit bzw. nachträglich: sar: Collect, report, or save system activity information. 9

Performance-Troubleshooting Analyse OSRessourcen CPU RAM Disk Prozesse CPU-Last Garbage Collection (GC) Analyse jstat, jmap Threaddump Analyse jstack, Sampler Ursache beheben oder kompensierende Maßnahmen: externe Systeme, Locks, Ursache bekannt? Ursache: GC? MemoryAnpassung, GC-Tuning, Memory-Analyse (Histogramm, Dump) Hybride Threaddump Analyse top -H, jstack 10

JVM-Prozesse finden jps listet die lvmid aller für den ausführenden Benutzer monitorbaren JVMs auf -l für vollen Package-Namen -v für JVM-Argumente -m für Argumente an die main-methode jcmd wie jps, vereint auch alle Funktionen der anderen Tools und löst diese mittelfristig ab 11

JVM Monitoring Text basiert jstat -option jvmid [Interval] [Wiederholungen] Options: class, compiler, gc, gccapacity, gccause, gcnew, gcnewcapacity, gcold, gcoldcapacity, gcpermcapacity, gcutil, printcompilation 12

JVM Troubleshooting - Speicher Allgemeine statische GC-Informationen: Histogram der Heap-Objekte erzeugen: jmap -heap jvmid jmap -histo jvmid Dump des JVM-Heaps erzeugen: jmap -dump:format=b jvmid erzeugt Heap-Dump in Datei heap.bin nach heap.hprof umbenennen diese kann mit Eclipse Memory Analyzer auf Gründe von Memory Leaks analysiert werden (http://wiki.eclipse.org/index.php/memoryanalyzer) 13

Performance-Troubleshooting Analyse OSRessourcen CPU RAM Disk Prozesse CPU-Last Garbage Collection (GC) Analyse jstat, jmap Threaddump Analyse jstack, Sampler Ursache beheben oder kompensierende Maßnahmen: externe Systeme, Locks, Ursache bekannt? Ursache: GC? MemoryAnpassung, GC-Tuning, Memory-Analyse (Histogramm, Dump) Hybride Threaddump Analyse top -H, jstack 14

JVM Troubleshooting - Threads jstack listet alle Threads in dem spezifizierten JVMProzess zu jedem Thread wird der momentane Callstack ausgegeben Option -l listet auch Locks und Deadlocks Option -F (force) 15

Performance-Troubleshooting Analyse OSRessourcen CPU RAM Disk Prozesse CPU-Last Garbage Collection (GC) Analyse jstat, jmap Threaddump Analyse jstack, Sampler Ursache beheben oder kompensierende Maßnahmen: externe Systeme, Locks, Ursache bekannt? Ursache: GC? MemoryAnpassung, GC-Tuning, Memory-Analyse (Histogramm, Dump) Hybride Threaddump Analyse top -H, jstack 16

Hybride Threaddump Analyse top Batch-Modus möglich: -b Anzahl Interationen: -n 1 Threads statt Prozesse anzeigen: -H Die angezeigte Prozess-ID pro Thread ist auch die Thread-ID in der JVM jstack Prozess-ID 23679 (dezimal) ist in Hex 5c7f => nid=0x5c7f 17

JVM Environment OS Environment (PATH etc.) und JVM Environment (System Properties) sind getrennt Werte für das JVM-Environment können durch Programme oder von außen beim Start der JVM mit -Dname=wert gesetzt werden jinfo (unter JDK5 nicht für Windows verfügbar) 18

JVM Flags Auswahl verschiedener Implementierung und Ausgaben direkt in der JVM Logs zu GC, Compiler, Safe Points, Class Loading Funktionsweise: -XX:+AktivierteOption -XX:-DeaktivierteOption -XX:GroessenEinstellung=200m Kontrolle und Vergleich zwischen JVM-Versionen: va -XX:+PrintFlagsFinal -version 19

Code Cache und Compilation Defaults JDK 7 (Update 80) -TieredCompilation ReservedCodeCacheSize=50m +UseCodeCacheFlushing Defaults JDK 8 (Update 91) +TieredCompilation ReservedCodeCacheSize=250m +UseCodeCacheFlushing 20

Performance-Troubleshooting Analyse OSRessourcen CPU RAM Disk Prozesse CPU-Last Garbage Collection (GC) Analyse jstat, jmap Threaddump Analyse jstack, Sampler Ursache beheben oder kompensierende Maßnahmen: externe Systeme, Locks, Ursache bekannt? Ursache: GC? MemoryAnpassung, GC-Tuning, Memory-Analyse (Histogramm, Dump) Hybride Threaddump Analyse top -H, jstack 21

JVM Agent aktivieren Lokal aktivieren: JDK 5: -Dcom.sun.management.jmxremote JDK 6+ : nix, dank Attach API remote öffnen: -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false bei Problemen RMI-Name setzen: -Dva.rmi.server.hostname=... 22

JMX nachträglich aktivieren jcmd 1234 ManagementAgent.start jmxremote.port=5454 jmxremote.ssl=false jmxremote.authenticate=false ManagementAgent.stop JMX-Agents sollten auf kritischen Systemen niemals ohne SSL und Authentifizierung gestartet sein! 23

Vielen Dank! Fragen? 24