JTLviz Ein neuer Freund für T4 Martin Vorländer DECUS IT-Symposium 2006 2G06 Martin Vorländer arbeitet seit 15 Jahren bei der PDV-SYSTEME GmbH. Über die Applikations-Programmierung unter OpenVMS kam er zum OpenVMS Service und Support. Einige Ideen dieses Vortrags stammen aus Vorträgen von Steve Lieman, Performance Group, OpenVMS Engineering.
Thema: Performance-Analyse Wichtige Punkte: Daten sammeln Einfaches, erweiterbares Dateiformat Automatisieren der Datensammlung Visuelles Darstellen der Daten „Wichtige Punkte“ = Best Practices IT-Symposium 2006 2G06
Daten sammeln "Diejenigen, die sich nicht an die Geschichte erinnern, sind dazu verdammt, sie zu wiederholen.“ Keine Daten zu haben bedeutet… keine Historie keine Vorher-/Nachher-Vergleiche keine Argumente immer von vorn zu beginnen Kein Verlass auf Mittelwerte Alle Daten sammeln Immer Daten sammeln Those who cannot remember the past are condemned to repeat it. - George Santayana (1863 - 1952), (spanisch-stämmiger) US-Philosoph, The Life of Reason, Volume 1, 1905 Alle & Immer: Niemand kann vorher sagen, wann welche Daten wichtig werden könnten. IT-Symposium 2006 2G06
Einfaches, erweiterbares Dateiformat Einfache Verarbeitung Einfaches Hinzufügen neuer Metriken Zeitstempel Idealerweise gleiche Sammelintervalle Beispiel: CSV (Comma-Separated Values) IT-Symposium 2006 2G06
Automatisieren der Datensammlung Arbeitszeit ist teuer, Rechnerzeit ist billig Vermeidet fehlende Daten bei der Analyse von Performance- Problemen Beispiel: täglich gestarteter Batch-Job IT-Symposium 2006 2G06
Visuelles Darstellen der Daten Funktioniert gut mit zeitgestempelten Daten Spart ebenfalls Zeit Erkennen von Trends Erkennen von wiederkehrenden Mustern Erkennen von Veränderungen Unterstützung bei der Kommunikation von Argumenten Beispiel: Excel-Diagramme IT-Symposium 2006 2G06
Beispiel: Vorher/Nachher-Vergleich CPU 0 Idle % GS140 10 CPUs @ 700 MHz GS1280 8 CPUs @ 1.15 GHz Daten aus dem Marvel Performance Proof Point (P3) Projekt der Performance Group “With GS140 CPU 0 is completely consumed during peaks (e.g. at 10:30 for many minutes at a time). With GS1280, 69% spare CPU 0 during absolute peak with this workload.” IT-Symposium 2006 2G06
T4 Entwickelt von der Performance Group bei OpenVMS Engineering Ursprünglich „Tom’s Terrific Timeline Tool“ Extraktion von Daten aus MONITOR /RECORD nach CSV Mittlerweile „Total/Tabular Timeline Tracking Tool/Technique“ Rechnerbelastung i.d.R. weniger als 1% CPU Dateiformat: TimeLine Collaboration (TLC) Format T4: Technik, um Performance-Daten aus verschiedenen Quellen auf einfache Weise zusammenzubringen. Rechnerbelastung bei Verwendung des Default-Sammelintervalls von 60 Sekunden. Auslieferung von T4 als Teil von SHC (System Health Check) IT-Symposium 2006 2G06
TLC-Dateiformat CSV-Format, d.h. Text, durch Kommas getrennt 1. Zeile: Rechnername, optional weitere Infos 2./3. Zeile: Start-Datum / -Zeiten der Datensammlung optional 4. Zeile: Namen der Metriken Konvention: "[Kollektor]Name", z.B. "[MON.SYST]CPU 0 Idle" Ab 5. Zeile: Daten 1. Spalte: Zeitstempel Ende des Sammelintervalls Konvention: Name enthält "Sample Time“ Genau eine Zeile pro Zeitstempel Genau eine Spalte pro Metrik/Wert (evtl. leer) Oben beschrieben: Typ 1 Typ 2 (z.B. FibreChannel-Kollektor): 1. Zeile: wie oben 2. Zeile: „$$$ START COLUMN HEADERS $$$“ 3. Zeile ff.: Namen der Metriken; einer oder mehrere pro Zeile n. Zeile: „$$$ END COLUMN HEADERS $$$“ Ab (n+1)ter Zeile: Daten IT-Symposium 2006 2G06
Erweiterbarkeit des TLC-Formats Zeilenweises Anhängen von Dateien: + Annahme: Zeitstempel passen zeilenweise Kleinere Anzahl von Zeilen der Eingabe = Anzahl der Zeilen der Ausgabe = IT-Symposium 2006 2G06
Beispiel TLC-Dateiformat Nur ein Ausschnitt aus 266 Spalten und 1446 Zeilen IT-Symposium 2006 2G06
ECP / TDC Performance Data Collector (TDC) Enterprise Capacity Planer Infrastruktur für Daten-Kollektoren Run-Time wird mit OpenVMS V8.2 Alpha und I64 installiert Required SIP (System Integrated Product) SDK und RT für OpenVMS Alpha V7.3-2 zum Download Enterprise Capacity Planer Data Collector lizensiert mit OpenVMS Setzt ab V5.5 auf TDC auf Datenspeicherung in Binärformat Extraktion nach CSV-Datei (kein TLC-Format!) Erwähnung der Vollständigkeit halber… TDC = THE Data Collector IT-Symposium 2006 2G06
T4 – Die Software Verzeichnis T4$Sys: Anforderungen: Account PrcLm ≥ 20 Account TqLm ≥ 100 Account PgFlQuota ≥ 500000 Process Termination Accounting aktiviert Steuerung durch DCL-Prozeduren Konfiguration per Dialog durch T4$Config.Com Ausführung im Batch durch T4$Collect.Com V4.0 ab OpenVMS Alpha V7.3 und I64 V8.2 V3.3 für ältere Versionen von OpenVMS Alpha V7 SYS$ETC:T4_Vxx_KIT.EXE (ab OpenVMS V7.3-2) T4$Sys muss selbst definiert werden T4$Config.Com: Default-Sammelintervall 60 Sekunden, Minimum 10 Sekunden SYS$ETC:T4_V33_KIT.EXE auf OpenVMS Alpha V7.3-2 SYS$ETC:T4_V34_KIT.EXE auf OpenVMS I64 V8.2-1 V4.0 kommt als PCSI-Kit; Installation defaultmässig in SYS$COMMON:[T4] IT-Symposium 2006 2G06
T4 – Die Software (Forts.) Kollektoren/Extraktoren: MONITOR /RECORD /ALL + T4$Mon_Extract Betriebssystem T4$Lck73_Mon Lock Manager T4$Xfc_Mon Extended File Cache T4$Net_Mon Netzwerk-Interfaces T4$Aclg Accounting Log Tcp_Mon TCP/IP Services T4$Fc_Mon FibreChannel-Platten (ab V4.0) Für OpenVMS Alpha 7.3-2+ und OpenVMS I64 8.2+ liegt ein MONITOR.EXE bei. Für OpenVMS Alpha vor V7.3-2 liegt ein MONTOR_TV.EXE bei. Lck73_Mon läuft ab OpenVMS Alpha V7.2-2. Tcp_Mon wird auch als TCPIP$EXAMPLES:TCPIP$TCP_MON.EXE ausgeliefert (ab TCP/IP Services 5.1). T4$Fc_Mon erzeugt Typ 2-TLC-Dateien! IT-Symposium 2006 2G06
T4 – Die Software (Forts.) Tools: T4$Aprc T4$Now T4$Abort CsvPng (ab V3.4) HtmlDoc (ab V4.0) T4$Aprc: Append Record – TLC-Dateien aneinanderhängen (nur Typ 1!) T4$Now: Snapshot eines laufenden T4 T4$Abort: Beenden eines T4-Prozesses (sendet ein $FORCEX) CsvPng: Generieren von PNG-Grafiken und einer HTML-Indexseite aus CSV-Daten und/oder Generieren von CSV-Dateien, Selektion von Metriken und Zeiträumen Eingabedaten: TLC-Dateien ECP/TDC-Dateien Perfmon windows data auch für Windows 2000/XP HtmlDoc: Umwandeln von CSVPNG-Daten in Postscript und PDF Quellcode auch unter *ix und Win32/cygwin kompilierbar Weiterhin dabei (ab V4.0): T4$Xfc_Stat.Exe, T4$Xfc_Post.Exe VEvaMon.Exe (inkl. Dokumentation) – „This version of vevamon has expired“ IT-Symposium 2006 2G06
T4$Config IT-Symposium 2006 2G06 $ @T4$SYS:T4$CONFIG © Copyright 2002 Compaq Information Technologies Group, L.P. Executing T4$CONFIG.COM on node MAX - Date/Time is now 7-FEB-2006 11:17:59.52 Collection Start Time [8-FEB-2006 08:00:00.00]: Collection End Time [8-FEB-2006 20:00:00.00]: Batch queue name : sys$batch Network Interface Device (? for list, type RETURN to finish) : EIA0: Network Interface Device (? for list, type RETURN to finish) : Sampling Interval (seconds) [60] : Destination Directory [T4$SYS] : t4$data: Automatically manage T4 data storage [N] : yes Number of days to retain raw data [7] : Number of days to retain intermediate files [3] : Number of days to retain reduced files [9999] : Re-Submit data collection job daily [N] : yes Email address : mv@pdv-systeme.de Job T4$COLLECT (queue SYS$BATCH, entry 80) holding until 8-FEB-2006 07:58 $ IT-Symposium 2006 2G06
T4$Collect Rudimentäres Datei-Management Startet die Kollektoren Einteilung nach Roh- / Zwischen- / Langzeit-Daten Startet die Kollektoren Am Ende des Sammelintervalls: Optional: Re-Submit für den nächsten Tag Stoppen der Kollektoren Extrahieren von MONITOR-Daten mittels T4$Mon_Extract Alle System-Daten außer SCS, Disk, RMS + Daten ausgewählter Prozesse Anhängen von Daten aus anderen Quellen mittels T4$Aprc Erzeugen von CsvPng-Grafiken ausgewählter Metriken Optional: Versenden der Daten und Grafiken per Email Zwischen-Daten: „Intermediate Data“ Re-Submit: 2 Minuten vor Start SCS- und Disk-Daten werden extrahiert, aber nicht weiterverarbeitet. Default für ausgewählte Prozesse: "*LMD0*","*SHAD*","*PRODOPER*","*BATCH*","*ASSEM*","*T4*“ Default für erzeugte CSVPNG-Grafiiken: "CPU Busy","MP synch","Interrupt State",direct,buffered IT-Symposium 2006 2G06
Durch T4 V4.0 erzeugte Dateien Verzeichnis T4$Data: Batch-/Subprozess-Logdateien: T4$COLLECT_nodename.LOG T4_nodename_start-date_start-time_end-time_SUBP_facility.LOG facility: Mon, Lck7, Xfc, network-device, Tcp, Fcm Rohdaten: T4_nodename_start-date_start-time_end-time_MON.DAT T4_nodename_start-date_start-time_end-time_FCM.DAT TLC-Dateien: T4_nodename_start-date_start-time_end-time_facility.CSV facility: Lck7, Xfc, NetM_network-device, Tcp, Fcm, Aclg, Disk, Scs, Comp T4$Data ist benutzerdefiniert „Comp“ = Composite Änderungen gegenüber V3.3: Fcm, Comp (vorher ohne facility) IT-Symposium 2006 2G06
Friends of T4 "upstream": weitere Kollektoren Spinlocks ORACLE Classic und Rdb BEA WebLogic Server Antwortzeiten / Datendurchsatz von Applikationen … "downstream": Verarbeiten von TLC-Dateien Zusammenfassen Berechnen neuer Metriken Visualisieren Berechnen neuer Metriken: „Normalisierte Variablen“, z.B. CPU pro I/O, Verhältnis Locking : I/O IT-Symposium 2006 2G06
Upstream Friends of T4 Übergebene allgemeine Parameter: Empfehlungen: Startzeit Endzeit Sammelintervall TLC-Dateiname Empfehlungen: Einhalten der Intervall-Zeiten - keine Zeit-Drift! 00:01:00.57, 00:02:00.96, 00:03:01.81, 00:04:02.16, … Geringer Overhead Flush nach Schreiben jeder Zeile Zugriff auf Ausgabedatei mit Share=Read Flush und Share=Read für T4$Now IT-Symposium 2006 2G06
TLViz TLC-Dateien sprengen wegen der Anzahl der Spalten schnell die Fähigkeiten von Excel Programm zum Visualisieren von TLC-Daten Überlagern von Kurven (auch aus verschiedenen Intervallen) Gleitende Mittelwerte Korrelation von Metriken Berechnung neuer Metriken Ursprünglich internes Tool der Performance Group Geschrieben in Visual Basic Lauffähig unter Microsoft Windows Excel: maximal 256 Spalten IT-Symposium 2006 2G06
Beispiel TLViz IT-Symposium 2006 2G06
JTLviz Pure-Java Re-Implementierung von TLViz Läuft überall, wo SUNs JRE 1.4.2 verfügbar ist: Win32, Linux, OpenVMS, MacOS, … Begonnen als Programmierübung zum Lernen von Java Entwickelt mit NetBeans IDE 4.1 unter Windows XP Liest auch ECP/TDC-Dateien Noch keine voll funktionsfähiger Kopie Kein Ausblenden von Kurven Kein vollständiges Überlagern von Kurven aus verschiedenen Intervallen Korrelation nur zwischen Metriken einer Datenkollektion Kein Drucken Hilfe willkommen! JRE = Java Runtime Environment IT-Symposium 2006 2G06
Beispiel JTLviz IT-Symposium 2006 2G06
Links JTLviz Homepage http://www.pdv-systeme.de/users/martinv/JTLviz.html Homepage T4, TLViz, CsvPng, HtmlDoc http://h71000.www7.hp.com/openvms/products/t4/ OpenVMS Technical Journal V3: „TimeLine-Driven Collaboration with T4 and Friends: A Timesaving Approach to OpenVMS Performance” http://h71000.www7.hp.com/openvms/journal/v3/t4.html OpenVMS Technical Journal V4: „Adding a Friend to T4 and Friends: Incorporating BEA WebLogic Server 8.1 Performance Data” http://h71000.www7.hp.com/openvms/journal/v4/adding_a_friend_to_t4.html Homepage HtmlDoc for OpenVMS IT-Symposium 2006 2G06
ECP Homepage http://h71000.www7.hp.com/openvms/products/ecp/ Links (Forts.) ECP Homepage http://h71000.www7.hp.com/openvms/products/ecp/ TDC Homepage http://h71000.www7.hp.com/openvms/products/tdc/ OpenVMS Technical Journal V5: „Introduction to the Performance Data Collector for OpenVMS (TDC)” http://h71000.www7.hp.com/openvms/journal/v5/ intro-to-performance-data-collector.html IT-Symposium 2006 2G06
htmldoc Homepage http://www.htmldoc.org/ Links (Forts.) htmldoc Homepage http://www.htmldoc.org/ HP Java2 SDK 1.4.2 for OpenVMS Download http://h18012.www1.hp.com/java/download/ovms/1.4.2/ sdk1.4.2_down.html NetBeans for OpenVMS Homepage http://www.openvms.compaq.com/openvms/products/ips/netbeans/ NetBeans Homepage http://www.netbeans.org/ Aktuell ist Java5 1.5.0 IT-Symposium 2006 2G06
Fragen? IT-Symposium 2006 2G06
Anhang Parameter T4$Collect.Com Syntax T4$Mon_Extract.Exe Syntax T4$Aprc.Exe Syntax T4$Now.Com Syntax T4$Abort.Exe Aufruf fast aller Kollektoren Syntax CsvPng Syntax HtmlDoc IT-Symposium 2006 2G06
Parameter T4$Collect.Com P1 Collection Start Time P2 Collection End Time P3 Batch queue name to be used P4 Comma-separated list of Network Interface Devices P5 Email address P6 Sampling Interval in seconds P7 Destination Directory P8 Comma-separated list: Number of days to retain raw data Number of days to retain intermediate files Number of days to retain reduced files Re-Submit data collection job daily (Y/N) IT-Symposium 2006 2G06
Syntax T4$Mon_Extract.Exe $ Set Command T4$Sys:T4$Mon_Extract $ T4Extr - /Beginning_Time[=start_date_time] - /Ending_Time[=end_date_time] - /[No]Csv_File[=csv_file_name] - /[No]Append - /Process_Name=(process_name [,...]) - /[No]Primary_Cpu=cpu_number - /Class=(class [,...]) - [No]All, [No]Processes, [No]Scs, [No]Disk, [No]Cpu, [No]Rms /Format=(format [,...]) - Standard, [No]Extended monitor_record_filename Defaults: /Process_Name=“ORA*“ /Primary_Cpu=1 /Class=All /Format=Standard IT-Symposium 2006 2G06
Syntax T4$Aprc.Exe $ Set Command T4$Sys:T4$Aprc $ T4Aprc in_file [,...] out_file Nur für Typ 1 TLC-Dateien! IT-Symposium 2006 2G06
Syntax T4$Now.Com $ @T4$Sys:T4$Now Dialoggesteuert IT-Symposium 2006 2G06
Syntax T4$Abort.Exe $ Set Command T4$Sys:T4$Abort $ T4Abort /Identification=process_pid IT-Symposium 2006 2G06
Aufruf fast aller Kollektoren DCL-Prozedur als Subprozess von T4$Collect P1 Collection Start Time P2 Collection End Time P3 “start-time_end-time“ z.B. “0800_1700” P4 Sampling Interval Implementierung als Executable Image Syntax (definiert in CLD-Datei) /Beginning_Time[=start_date_time] /Ending_Time[=end_date_time] /[No]Csv_File[=csv_file_name] /Sampling_Interval[=sampling_interval] CLD-Datei: Textuelle Kommando-Definition für die Command Definition Utility Benutzung CLD-Datei: $ Set Command <cld_file> Dies definiert ein oder mehrere DCL-Kommando-Verben. Einzige Ausnahme: Net_Mon (Übergabe des Device Names) Fc_Mon Syntax: Parameter 1: Collect (schreibt .Dat Datei) Extract (schreibt .Csv Datei) IT-Symposium 2006 2G06
Syntax CsvPng $ CsvPng := $T4$Sys:CsvPng_arch.Exe $ CsvPng [options] csv-file ... /? /append /average[=<value>][:0] /border[=<value>] /caption="<text>":<font_size_code><font_color_code> /constant[=<value>] /correlate=<value>[:<threshold>] /dots[=<size>][:<color>] /extract[=<file>][:<n>] /fill /help /height=<value> /i /j[=<value>] /lines[=<value>][:<thickness>][:<color>] /merge[=<file>] /normalize /nocharts /nologs /overlay[=<value>] /parameters=<parameters> /quiet /rules=<file> /sparklines /stack /trimzeros /timerange=<range> /u=<html_file> /version /width=<value> /x[=<file>][:<n>] /y[=<file>] /zero[=<value>] IT-Symposium 2006 2G06
Syntax HtmlDoc $ HtmlDoc := $T4$Sys:HtmlDoc_arch.Exe $ Set Default directory-with-csvpng-files $ HtmlDoc --webpage [--quiet] – -f pdf-or-ps-filename – csvpng-html-filename … -d directory -f filename -t format -v --batch filename.book --bodycolor color --bodyfont typeface --bodyimage filename --book --bottom margin --browserwidth pixels --charset charset --color --compression[=level] --continuous --cookies 'name=\"value with space\"; name=value' --datadir directory --duplex --effectduration seconds --embedfonts --encryption --firstpage page --fontsize size --fontspacing spacing --footer lcr --format format --gray --header lcr --headfootfont font --headfootsize size --headingfont typeface --help --helpdir directory --jpeg[=quality] --landscape --left margin --linkcolor color --links --linkstyle style --logoimage filename --no-compression --no-duplex --no-embedfonts --no-encryption --no-jpeg --no-links --no-localfiles --no-numbered --no-pscommands --no-strict --no-title --no-toc --no-xrxcomments --numbered --nup pages --outdir directory --outfile filename --owner-password password --pageduration seconds --pageeffect effect --pagelayout layout --pagemode mode --path dir1;dir2;dir3;...;dirN --permissions permission[,permission,...] --portrait --pscommands --quiet --referer url --right margin --size size --strict --textcolor color --textfont typeface --title --titlefile filename --titleimage filename --tocfooter lcr --tocheader lcr --toclevels levels --toctitle string --top margin --user-password password --verbose --version --webpage --xrxcomments IT-Symposium 2006 2G06