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



Ähnliche Dokumente
Klappe auf! Was macht die JVM denn da?

Eins für alles? Monitoring und Profiling mit VisualVM

Module für eine Java-Administrationsschulung

Java Performance Tuning

Übung 8: Semaphore in Java (eigene Implementierung)

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

SolarWinds Engineer s Toolset

4D Server v12 64-bit Version BETA VERSION

Multimedia im Netz. Wintersemester 2011/12. Übung 10. Betreuer: Verantwortlicher Professor: Sebastian Löhmann. Prof. Dr.

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

Server-Management mit JMX

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Java Script für die Nutzung unseres Online-Bestellsystems

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

Welche GC-Strategie ist die richtige?

Abacus Formula Compiler (AFC)

Performance Monitoring Warum macht es Sinn?

Hilfe bei Adobe Reader. Internet Explorer 8 und 9

Einführung: Lasttests mit JMeter. Sitestress.eu Jesuitenmauer Paderborn - karl@sitestress.eu /

Endlich! Mission Control und Flight Recorder für Hotspot

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

CRIBMASTER TECH DOC. Störbehebung bei Ausführung des Connectivity Checkers

Einführung in den NetBeans Profiler

Application Servers. Application Server JBoss Java Management Extensions (JMX) Dynamische Rekonfigurierung

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

Installation und Inbetriebnahme von SolidWorks

Webcast: Java Nagios Monitoring in der Praxis

Java Virtual Machine (JVM) Bytecode

Xerox Device Agent, XDA-Lite. Kurzanleitung zur Installation

ecaros-update 8.2 Update 8.2 procar informatik AG 1 Stand: DP 02/2014 Eschenweg Weiterstadt

Android Remote Desktop & WEB

Metriken und optimale Einsatzszenarien für Garbage Collectoren der Java HotSpot Virtual Machine

Technische Grundlagen von Internetzugängen

Verwendung des Terminalservers der MUG

Einführung in Eclipse und Java

Was ist PDF? Portable Document Format, von Adobe Systems entwickelt Multiplattformfähigkeit,

WebSphere Application Server Installation

Lizenzen auschecken. Was ist zu tun?

MOUNT10 StoragePlatform Console

Thomas Wagner 2009 (im Rahmen der TA) Installation von MySQL 5.0 und Tomcat 5.5

Führen Sie zum Einstieg in die Materie einige Systemdiagnosen durch. Benutzen Sie dabei winmsd.exe.

Verwenden von Adobe LiveCycle ES3 Connector für Microsoft SharePoint

Applikations-Performance in Citrix Umgebungen

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

JIRA-Speicher erhoehen

Operator Guide. Operator-Guide 1 / 7 V1.01 / jul.12

VERWENDEN VON ADOBE DIGITAL ENTERPRISE PLATFORM DOCUMENT SERVICES CONNECTOR FÜR MICROSOFT SHAREPOINT 10.0

Whitepaper. Produkt: combit address manager / Relationship Manager. Client-Verbindungsprobleme beheben. combit GmbH Untere Laube Konstanz

Effizient, sicher und flexibel: Desktop-Virtualisierung mit Citrix XenDesktop

Step by Step Webserver unter Windows Server von Christian Bartl

Praktikum IT-Sicherheit

Windows Server 2008 für die RADIUS-Authentisierung einrichten

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

Management mit SNMP. Was ist snmp? Standards und Normen Datenstrukturen Implementierung Tools und Administration

Java-Tutorium WS 09/10

Internet Explorer Version 6

Windows 8 Lizenzierung in Szenarien

Telefon MiVoice 6721ip Microsoft Lync REV02 KURZANLEITUNG

Business Application Framework für SharePoint Der Kern aller PSC-Lösungen

Anleitung zum Prüfen von WebDAV

Anleitung zur CITRIX-Receiver Installation.

EXPANDIT. ExpandIT Client Control Kurzanleitung. utilities. be prepared speed up go mobile. Stand

IRF2000 Application Note Eingeschränkter Remote Zugriff

Fragen zur GridVis MSSQL-Server

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Service-Handbuch. SH_Checkup_Applets.doc. Version: 1.02 Aktualisiert: durch: RLo Seite 1 von 6

Visendo Fax Web Client Troubleshooting

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

eclips Handheld Remote Control Software Updater

Anleitung zur Einrichtung von Outbound und Inbound Filtern Für DWR-512 (Stand August 2012)

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

Proxyeinstellungen für Agenda-Anwendungen

Benutzerkonto unter Windows 2000

Einrichten einer RemoteApp- und Desktopverbindung

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Installationshandbuch

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

3 Konfiguration OfficeMaster 3.10 SNMP

CADEMIA: Einrichtung Ihres Computers unter Windows

OS IDE Webserver Integration des Webservers in die IDE Wireshark Webserver II Dynamisches Webprojekt in Eclipse

RSS-Feed. Die Nachrichten des BFBN informieren Sie zu Themen wie z.b.:

Anti-Botnet-Beratungszentrum. Windows XP in fünf Schritten absichern

GSM: Airgap Update. Inhalt. Einleitung

Adressen der BA Leipzig

Installieren von GFI WebMonitor

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

BusinessMail X.400 Webinterface Gruppenadministrator V2.6

Geschütztes FTP-Verzeichnis erstellen

1 Konfigurationsanleitung Hosted Exchange

Schneller, höher, weiter Die erweiterten Amt24-Schnittstellen. Klaus-Peter Geyer (T-Systems)

Kurzanleitung zur Softwareverteilung von BitDefender Produkten...2

Windows 7 - Whoami. Whoami liefert Informationen wie z.b. die SID, Anmelde-ID eines Users, sowie Gruppenzuordnungen, Berechtigungen und Attribute.

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler Oktober 2008 Version 1.0.

Handbuch. timecard Connector Version: REINER SCT Kartengeräte GmbH & Co. KG Goethestr Furtwangen

MSDE 2000 mit Service Pack 3a

CADEMIA: Einrichtung Ihres Computers unter Mac OS X

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

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

Seite 1 von 14. Cookie-Einstellungen verschiedener Browser

F-Secure Mobile Security for Nokia E51, E71 und E75. 1 Installation und Aktivierung F-Secure Client 5.1

Transkript:

JVM Monitoring Verfügbarkeit und Performance aus Sicht der Java Virtual Machine Tobias Frech

Warum Monitoring? primäres Interesse: Verfügbarkeit der Anwendung Minimierung von Ausfallzeiten schnelles Alarming rasche Fehlersuche und -abhilfe potentielle Fehlerquellen frühzeitig erkennen Schlechte Perfomance auf Grund von Resourcen-Engpässen erkennen

Was monitoren? Anwendungssystem als Stack, JVM ist Teil dieses Stacks Abhängigkeiten: Ausfall einer unteren Schicht beeinflußt Verfügbarkeit der darüberliegenden Schicht Verfügbarkeit der unteren Schicht garantiert nicht die Verfügbarkeit der darüberliegenden Schicht Monitoring aller Schichten, um Fehler schneller zu finden und Ressourcenengpässe frühzeitig zu erkennen.

Anwendung betriebswirtschaftliche Prozesse App-Server / Framework Session-Verwaltung, Connection Pools, Transaktionsmanager JVM Speichermanagement, Speichermanagement Thread-Management, Code-Kompilierung (JIT) OS RAM, Festplattenspeicher, Prozessmanagement, File handles, TCP-Sockets

Garbage Collection aus http://java.sun.com/docs/hotspot/gc5./gc_tuning_5.html

Werkzeuge Logs JConsole / JMX / JSR-16 JDK Tools SNMP

Log-Dateien Garbage Collection (GC) -verbose:gc / -XX:+PrintGC / -Xloggc:datei -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution GCViewer Kompilierung (http://www.tagtraum.com/gcviewer.html) -XX:+PrintCompilation -XX:-DontCompileHugeMethods

JConsole / JMX JMX: MBeans / MBeanServer JConsole als JMX-Agent Lokal aktivieren: JDK 5: -Dcom.sun.management.jmxremote JDK 6: nix, dank Attach API Seit JDK 6 Plugin API vorhanden: com.sun.tools.jconsole

JDK Monitoring Tools jps jstat

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

jstat liefert zur lvmid Informationen zu Classloading, Compiler und Speichermanagement zyklische Anzeige möglich, einstellbare Frequenz limitierte Anzahl möglich

jstat -class Loaded 237 2512 2928 3146 3616 444 4194 4289 448 4844 597 5132 517 523 5224 Bytes Unloaded 2523,7 279, 3299,8 3494,9 4121,5 469,1 4871, 4995,2 5213,1 5729, 625,9 667,2 614,3 6143,1 5 6162,9 5 Bytes,,,,,,,,,,,,, 11,1 11,1 Time,69,78,9,98 1,17 1,35 1,71 1,75 1,82 2,76 3,7 3,9 3,1 3,11 3,11

jstat -compiler Compiled Failed Invalid 341 386 442 478 514 55 55 551 551 551 553 564 Time FailedType FailedMethod 5,79 6,84 7,72 9,72 1,3 11,34 11,34 11,4 11,4 11,4 11,42 12,18

jstat -gc SC 64, 128, 128, 128, 128, 192, 192, 192, S1C 64, 128, 128, 128, 128, 192, 192, 192, PC 12288, 12288, 12288, 12288, 12288, 12288, 12288, 12288, PU 18,5 18,5 18,5 18,5 18,5 18,5 18,5 18,5 SU, 128, 94,8,,,,, S1U 47,,, 7,3 75,1, 9,9 113,4 YGC 449 516 568 621 675 722 761 799 EC 96, 128, 128, 128, 128, 1792, 1792, 1792, YGCT FGC,352 6,45 7,458 7,57 7,557 7,63 8,655 8,7 8 EU 681,4,,,,, 373,5 37,4 OC 12912, 1788, 1788, 1788, 1788, 25892, 25892, 25892, FGCT,36,396,396,396,396,542,542,542 GCT,657,81,853,93,953 1,145 1,196 1,242 OU 1493,7 1766, 13257,1 1483,1 16427, 15533,8 18214,1 19589,

jstat, weitere Optionen gccapacity: zeigt min, max und current der Generations gccause: zeigt Grund der momentanen GC (Allocation Failure, System.gc(),...) gcnew: Parameter der Promotion von Young nach Tenured, ähnlich -XX: +PrintTenuringDistribution gcnewcapacity, gcold, gcoldcapacity, gcpermcapacity, gcutil

JDK Troubleshooting Tools Fehlersuche: jinfo (JVM-Parameter und -Environment) jstack (Stack / Thread incl. Locks) jmap (Speicheranalyse und -dumps) jhat (Speicherdump- Browser )

Remote Werkzeuge jstatd JMX Remote API: JSR 16 JConsole MC4J (2. alpha 1, 18. Juni 26) SNMP

jstatd Erlaubt den Zugriff von jps und jstat von einem entfernten System aus keine Sicherungsmechanismen benötigt jedoch policy-datei: jstatd -J-Djava.security.policy=jstatd.all.policy jps servername jstat -gc lvmid@servername Achtung: RMI, dies hat seine Tücken!

JConsole Remote JMX (JSR 16) für remote-zugriffe öffnen: -Dcom.sun.management.jmxremote.port=12345 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

SNMPv2c Agent Simple Network Management Protocol Agent kann in der JVM aktiviert werden: -Dcom.sun.management.snmp.port=portNum Abgesichert über ACL-Datei: -Dcom.sun.management.snmp.acl.file=ACLFilePath oder deaktiveren: -Dcom.sun.management.snmp.acl=false MIB enthält: statische OS und JVM Informationen, dynamisch: Threads, Memory/GC

MBeanServer integrieren für JBoss: -Djavax.management.builder.initial= org.jboss.system.server.jmx.mbeanserverbuilderimpl -Djboss.platform.mbeanserver ermöglicht vielfältige Monitormöglichkeiten über die JVM hinaus

Beispiel JBoss (I) Server jboss.system:type=serverinfo GC / Free Memory java.lang:name=copy,type=garbagecollector CollectionCount (δ), CollectionTime (δ) java.lang:name=marksweepcompact,type=garbagecollec tor TotalMemory, ActiveThreadCount CollectionCount (δ), CollectionTime (δ) Operating System java.lang:type=operatingsystem SystemLoadAverage, OpenFileDescriptorCount, FreePhysicalMemorySize

Beispiel JBoss (II) HTTP-Connector: jboss.web:type=threadpool,name=http-...-88 jboss.web:type=globalrequestprocessor,name=http...-88 requestcount (δ), maxtime Webanwendung: jboss.web:type=manager,path=/,host=localhost currentthreadsbusy, currentthreadcount activesessions, maxactive Transaktions-Manager: jboss:service=transactionmanager RollbackCount (δ), CommitCount (δ)

Beispiel JBoss (III) JMS: jboss.mq.destination:service=queue,name=dlq Datasource: jboss.jca:service=managedconnectionpool,name=myds AvailableConnectionCount Frameworks, z.b. Hibernate: Hibernate:type=statistics QueueDepth, SubscribersCount, ReceiversCount SuccessfulTransactionCount (δ), OptimisticFailureCount (δ), TransactionCount (δ) MBeans der Anwendung

Sinnvolles Monitoring Wenn möglich SLAs erfassen, regelmäßiges Feedback zum Nutzer über SLA-Berichte Erfasst alle Schichten und Lastquellen bzgl. JVM: PermGenSpace überwachen FreeMemory nicht sinnvoll Frequenz und Dauer der Garbage Collection (insb. Tenured Generation) sinnvoller

Vielen Dank an die Photographen (in order of appearance :-) ) Áron Balogh (cctv) Fantmen (BSOD, GPL) Daniel Wildman (lego) Sanja Gjenero (tools, why?) Marcelo Terraza (helmet)