OSWatcher Black Box Analyzer (7.3.0)

02.
November
2014
Veröffentlicht von: Stefan Hartsberger

In diesem Artikel folgt zunächst eine Ergänzung zum Monatstipp OS Monitoring mit "OSWatcher Black Box" (7.3.0). Im Anschluss stelle ich das Tool "OSWatcher Black Box Analyzer" vor, mit welchem man die gesammelten Daten grafisch auswerten kann.

In diesem Artikel folgt zunächst eine Ergänzung zum Monatstipp Opens external link in new windowOS Monitoring mit "OSWatcher Black Box" (7.3.0). Im Anschluss stelle ich das Tool "OSWatcher Black Box Analyzer" vor, mit welchem man die gesammelten Daten grafisch auswerten kann.

1. Ergänzung zu OSWatcher Black Box

1.1. tarupfiles.sh

Mit diesem Skript können die gesammelten Daten zu einer tar-Datei zusammengefasst werden. Das eignet sich besonders gut, wenn man die Daten jemandem (z. B. dem Oracle Support) zur Verfügung stellen möchte.

Beim Aufruf des Skripts wird lediglich ein Parameter mit übergeben. Dieser gibt das Verzeichnis (absoluter Pfad) an, welches zusammengefasst werden soll. Im Normalfall sollte es das "archive" Verzeichnis sein.

oracle@server01:~> cd /u01/app/oracle/oswbb/
oracle@server01:/u01/app/oracle/oswbb> ./tarupfiles.sh /u01/app/oracle/oswbb/archive/

Die Datei hat dann das Format osw_archive_DDMMYYHH24MI.tar.

oracle@server01:/u01/app/oracle/oswbb> ls -la osw_archive*
-rw-r--r--  1 oracle oinstall 34682880 28. Aug 08:22 osw_archive_0828140822.tar

Je nachdem, wie viele Daten gesammelt worden sind oder ob diese auch wieder nach einer gewissen Zeit gelöscht werden, kann die tar-Datei relativ groß werden.
Damit man keine riesigen Datenmengen hochladen muss, wurde ein neues Skript bereitgestellt. Es behebt das Problem, indem nicht alle gesammelten Daten zusammengefasst werden. Doch mehr dazu im nächsten Abschnitt.

1.2. tar_up_partial_archive.sh

Wie bereits erwähnt lässt sich mit diesem Skript der Zeitraum der gesammelten Daten eingrenzen, die dann zu einer tar-Datei zusammengefasst werden sollen.

Nehmen wir an, dass am 27.08.2014 vormittags ein Performance Problem auftrat. Wir möchten dem Oracle Support (oder für die interne Dokumentation) den interessanten Zeitraum von 8 - 13 Uhr zur Verfügung stellen.

oracle@server01:/u01/app/oracle/oswbb> ./tar_up_partial_archive.sh /u01/app/oracle/oswbb/archive/
Your archive directory contains the following hourly logs

1: server01.muniqsoft.de_vmstat_14.08.26.1300.dat
2: server01.muniqsoft.de_vmstat_14.08.26.1400.dat
3: server01.muniqsoft.de_vmstat_14.08.26.1500.dat
4: server01.muniqsoft.de_vmstat_14.08.26.1600.dat
5: server01.muniqsoft.de_vmstat_14.08.26.1700.dat
6: server01.muniqsoft.de_vmstat_14.08.26.1800.dat
7: server01.muniqsoft.de_vmstat_14.08.26.1900.dat
8: server01.muniqsoft.de_vmstat_14.08.26.2000.dat
9: server01.muniqsoft.de_vmstat_14.08.26.2100.dat
10: server01.muniqsoft.de_vmstat_14.08.26.2200.dat
11: server01.muniqsoft.de_vmstat_14.08.26.2300.dat
12: server01.muniqsoft.de_vmstat_14.08.27.0000.dat
13: server01.muniqsoft.de_vmstat_14.08.27.0100.dat
14: server01.muniqsoft.de_vmstat_14.08.27.0200.dat
15: server01.muniqsoft.de_vmstat_14.08.27.0300.dat
16: server01.muniqsoft.de_vmstat_14.08.27.0400.dat
17: server01.muniqsoft.de_vmstat_14.08.27.0500.dat
18: server01.muniqsoft.de_vmstat_14.08.27.0600.dat
19: server01.muniqsoft.de_vmstat_14.08.27.0700.dat
20: server01.muniqsoft.de_vmstat_14.08.27.0800.dat
21: server01.muniqsoft.de_vmstat_14.08.27.0900.dat
22: server01.muniqsoft.de_vmstat_14.08.27.1000.dat
23: server01.muniqsoft.de_vmstat_14.08.27.1100.dat
24: server01.muniqsoft.de_vmstat_14.08.27.1200.dat
25: server01.muniqsoft.de_vmstat_14.08.27.1300.dat
26: server01.muniqsoft.de_vmstat_14.08.27.1400.dat
27: server01.muniqsoft.de_vmstat_14.08.27.1500.dat

Please enter starting number of log to select for zipping
20
You selected 20

Please enter ending number of log to select for zipping
24
You selected 24

[...]
archive_tmp/
archive_tmp/oswps/
archive_tmp/oswps/server01.muniqsoft.de_ps_14.08.27.1200.dat.gz
archive_tmp/oswps/server01.muniqsoft.de_ps_14.08.27.0900.dat.gz
archive_tmp/oswps/server01.muniqsoft.de_ps_14.08.27.0800.dat.gz
archive_tmp/oswps/server01.muniqsoft.de_ps_14.08.27.1100.dat.gz
archive_tmp/oswps/server01.muniqsoft.de_ps_14.08.27.1000.dat.gz
archive_tmp/oswmpstat/
archive_tmp/oswmpstat/server01.muniqsoft.de_mpstat_14.08.27.0900.dat
archive_tmp/oswmpstat/server01.muniqsoft.de_mpstat_14.08.27.1000.dat
archive_tmp/oswmpstat/server01.muniqsoft.de_mpstat_14.08.27.0800.dat
archive_tmp/oswmpstat/server01.muniqsoft.de_mpstat_14.08.27.1100.dat
archive_tmp/oswmpstat/server01.muniqsoft.de_mpstat_14.08.27.1200.dat
archive_tmp/oswprvtnet/
archive_tmp/oswslabinfo/
archive_tmp/oswslabinfo/server01.muniqsoft.de_slabinfo_14.08.27.1200.dat
archive_tmp/oswslabinfo/server01.muniqsoft.de_slabinfo_14.08.27.0900.dat
archive_tmp/oswslabinfo/server01.muniqsoft.de_slabinfo_14.08.27.1100.dat
archive_tmp/oswslabinfo/server01.muniqsoft.de_slabinfo_14.08.27.1000.dat
archive_tmp/oswslabinfo/server01.muniqsoft.de_slabinfo_14.08.27.0800.dat
archive_tmp/oswiostat/
archive_tmp/oswiostat/server01.muniqsoft.de_iostat_14.08.27.1000.dat
archive_tmp/oswiostat/server01.muniqsoft.de_iostat_14.08.27.0800.dat
archive_tmp/oswiostat/server01.muniqsoft.de_iostat_14.08.27.1200.dat
archive_tmp/oswiostat/server01.muniqsoft.de_iostat_14.08.27.0900.dat
archive_tmp/oswiostat/server01.muniqsoft.de_iostat_14.08.27.1100.dat
archive_tmp/oswvmstat/
archive_tmp/oswvmstat/server01.muniqsoft.de_vmstat_14.08.27.0800.dat
archive_tmp/oswvmstat/server01.muniqsoft.de_vmstat_14.08.27.0900.dat
archive_tmp/oswvmstat/server01.muniqsoft.de_vmstat_14.08.27.1000.dat
archive_tmp/oswvmstat/server01.muniqsoft.de_vmstat_14.08.27.1200.dat
archive_tmp/oswvmstat/server01.muniqsoft.de_vmstat_14.08.27.1100.dat
archive_tmp/oswtop/
archive_tmp/oswtop/server01.muniqsoft.de_top_14.08.27.1200.dat.gz
archive_tmp/oswtop/server01.muniqsoft.de_top_14.08.27.1000.dat.gz
archive_tmp/oswtop/server01.muniqsoft.de_top_14.08.27.1100.dat.gz
archive_tmp/oswtop/server01.muniqsoft.de_top_14.08.27.0900.dat.gz
archive_tmp/oswtop/server01.muniqsoft.de_top_14.08.27.0800.dat.gz
archive_tmp/oswmeminfo/
archive_tmp/oswmeminfo/server01.muniqsoft.de_meminfo_14.08.27.1200.dat
archive_tmp/oswmeminfo/server01.muniqsoft.de_meminfo_14.08.27.1000.dat
archive_tmp/oswmeminfo/server01.muniqsoft.de_meminfo_14.08.27.0800.dat
archive_tmp/oswmeminfo/server01.muniqsoft.de_meminfo_14.08.27.1100.dat
archive_tmp/oswmeminfo/server01.muniqsoft.de_meminfo_14.08.27.0900.dat
archive_tmp/oswnetstat/
archive_tmp/oswnetstat/server01.muniqsoft.de_netstat_14.08.27.0800.dat.gz
archive_tmp/oswnetstat/server01.muniqsoft.de_netstat_14.08.27.1200.dat.gz
archive_tmp/oswnetstat/server01.muniqsoft.de_netstat_14.08.27.1100.dat.gz
archive_tmp/oswnetstat/server01.muniqsoft.de_netstat_14.08.27.0900.dat.gz
archive_tmp/oswnetstat/server01.muniqsoft.de_netstat_14.08.27.1000.dat.gz


Es entsteht wieder eine Datei im Format osw_archive_DDMMYYHH24MI.tar.

oracle@server01:/u01/app/oracle/oswbb> ls -la osw_archive*
-rw-r--r--  1 oracle oinstall 34682880 28. Aug 08:22 osw_archive_0828140822.tar
-rw-r--r--  1 oracle oinstall  6062080 28. Aug 08:49 osw_archive_0828140849.tar

Wie man sieht, ist die Datei um einiges kleiner als die vorherige.

2. OSWatcher Analyzer

Der OSWatcher Analyzer (kurz: oswbba) bietet uns die Möglichkeit die gesammelten Daten grafisch auszuwerten. Beim Installieren vom OSWatcher wird dieser gleich mitgeliefert. Er besteht letztendlich aus der Datei oswbba.jar.

Es bieten sich insgesamt drei verschiedene Arten der grafischen Auswertung:

  • Diagramme als eigenes Fenster (Popup)
  • Diagramme als gif-Datei
  • Diagramme als html-Datei (auch "Profile" genannt)

Doch bevor wir uns die Graphen anschauen, müssen wir noch ein paar Voraussetzungen prüfen.

2.1. Grundvoraussetzungen

Da der oswbba in Java geschrieben ist, wird eine Java Version 1.4.2 oder höher vorausgesetzt. Des Weitern muss auf dem Client ein "X Server" vorhanden sein, um die Graphen anzuzeigen. Hierzu kann das kostenfreie Tool Xming oder die kostenpflichtigen Programme Exceed, Kea! X oder Reflection X verwendet werden.

Java Voraussetztungen prüfen:

oracle@server01:~> java -version
java version "1.4.2_14"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_14-b05)
Java HotSpot(TM) Client VM (build 1.4.2_14-b05, mixed mode)


Falls kein Java gefunden wurde, sieht das so aus:

oracle@server01:~> java -version
-bash: java: command not found


Wir gehen davon aus, dass die Oracle Datenbank Binaries installiert sind. Also müssen wir die PATH Variable um die von Oracle mitgelieferte Java Version ergänzen.

# 10g:
export PATH=$ORACLE_HOME/jre/1.4.2/bin:$PATH
# 11g + 12c:
export PATH=$ORACLE_HOME/jdk/bin:$PATH

Mit dem export Befehl sollte es nun möglich sein die aktuelle Java Version mittels java -version herauszufinden. Fügen Sie den Befehl gegebenenfalls in die .bash_profile Datei ein.

2.2. Funktionsweisen

Es gibt drei verschiedene Arten den oswbba aufzurufen. Entweder interaktiv mit Hilfe eines Menüs, per Kommandozeile oder mit Hilfe einer Parameterdatei. Um sich mit den Funktionen vertraut machen zu können, sollte man am Anfang das Menü wählen.

Beachten: Es muss bei allen Methoden mit dem Parameter "-i" der komplette Pfad zu den zu analysierenden Daten angegeben werden.

Menü:

oracle@server01:/u01/app/oracle/oswbb> java -jar oswbba.jar -i /u01/app/oracle/oswbb/archive
Starting OSW Analyzer V7.3.0
OSWatcher Analyzer Written by Oracle Center of Expertise
Copyright (c)  2014 by Oracle Corporation

Parsing Data. Please Wait...
[...]
Parsing Completed.

Enter 1 to Display CPU Process Queue Graphs
Enter 2 to Display CPU Utilization Graphs
Enter 3 to Display CPU Other Graphs
Enter 4 to Display Memory Graphs
Enter 5 to Display Disk IO Graphs

Enter 6 to Generate All CPU Gif Files
Enter 7 to Generate All Memory Gif Files
Enter 8 to Generate All Disk Gif Files

Enter L to Specify Alternate Location of Gif Directory
Enter T to Alter Graph Time Scale Only (Does not change analysis dataset)
Enter D to Return to Default Graph Time Scale
Enter R to Remove Currently Displayed Graphs

Enter A to Analyze Data
Enter S to Analyze Subset of Data(Changes analysis dataset including graph time scale)

Enter P to Generate A Profile
Enter X to Export Parsed Data to File
Enter Q to Quit Program

Please Select an Option:

  • Mit der Option "R" können die neuen Fenster wieder geschlossen werden.
  • Die Graphen können auch mittels den Optionen 6-8 als gif-Dateien erzeugt werden. Sie werden im Verzeichnis oswbb/gif/<Datum>/ abgelegt.
  • Mit der Option "A" wird eine Analyse der Daten durchgeführt und dann eine Zusammenfassung des Systems in Form eines Textfiles erzeugt. (In etwa vergleichbar mit einem Statspack Report.) Dieses wird im Verzeichnis oswbb/analysis/ abgelegt.
  • Mit der Option "P" wird ein sogenanntes "Profile" erzeugt. Es ist letztendlich eine htm-Datei, in der alle Graphen mit Erklärungen dargestellt werden. Diese ist sehr übersichtlich gestaltet und eignet sich besonders gut um die Ergebnisse in einem Browser anzuschauen. Es wird im Verzeichnis oswbb/profile/<Hostname>_<Datum>/ abgelegt.
  • Mit der Option "Q" verlässt man das Menü.

 

Kommandozeile:

Mit der Kommandozeile ändert sich nicht viel. Der Aufruf bleibt weitestgehend gleich, jedoch gibt man als zweiten Parameter noch die gewünschte Option mit.

Um sich ein "Profile" erzeugen zu lassen:

oracle@server01:/u01/app/oracle/oswbb> java -jar oswbba.jar -i /u01/app/oracle/oswbb/archive -P


Nun können wir noch die Optionen "B", "E" und "S" mit ins Spiel bringen. Diese ermöglichen es uns, nur einen bestimmten Zeitabschnitt genauer zu betrachten. Beispielsweise können wir uns zum Analysieren des oben erwähnten Performance Problems am 27.08.2014 den Zeitraum von 8 - 13 Uhr anschauen. Dabei steht "B" für begin und "E" für end.

Für ein "Profile" dieses Zeitraums:

oracle@server01:/u01/app/oracle/oswbb> java -jar oswbba.jar -i /u01/app/oracle/oswbb/archive -B Aug 28 08:00:00 2014 -E Aug 28 13:00:00 2014 -P


Für eine Textfile Analyse dieses Zeitraums:

oracle@server01:/u01/app/oracle/oswbb> java -jar oswbba.jar -i /u01/app/oracle/oswbb/archive -B Aug 28 08:00:00 2014 -E Aug 28 13:00:00 2014 -S

Achtung: Because oswbba builds graphs based on the unix operating system date function, the time stamp must be in standard English LANG format. The time stamp is formatted automatically by default (setting the parameter oswgCompliance = 1) in the OSWatcher.sh file.


Des Weiteren gibt es noch die Option "F", diese verweist auf eine eigene Datei welche alle weiteren Parameter enthält. Siehe nächste Methode.

Parameter Datei:

Bei dieser Methode wird ein Textfile benötigt, in dem Zeile für Zeile die gewünschten Kommandos enthalten sind. Eine Beipsieldatei liegt hier: oswbb/src/oswbba_input.txt

oracle@server01:/u01/app/oracle/oswbb> cat src/oswbba_input.txt
-B jul 25 12:00:00 2007 -E jul 25 12:05:00 2007 -P
-B jul 25 12:05:00 2007 -E jul 25 12:10:00 2007 -P
-6 -7
-8 -l /tmp
-P tuesday_crash


Ein Aufruf sieht folgendermaßen aus:

oracle@server01:/u01/app/oracle/oswbb> java -jar oswbba.jar -i /u01/app/oracle/oswbb/archive -F /u01/app/oracle/oswbb/src/oswbba_input.txt

Achtung: In unseren Tests wurde beim Aufruf der Parameterdatei immer nur die erste Zeile und dann eine Text-Analyse ausgeführt. Auf Nachfrage beim Entwickler von OSWbb (Carl Davis) erhielten wir folgende Antwort:

Hi Stefan,
I checked the code. It looks like that option has been obsoleted. It is simply ignoring the -F flag and processing what else is on the line. That is why the first option always works. I will remove the option from the documentation. Thanks for bringing this to my attention.
Regards,

Somit ist die Option (-F) für die Parameterdatei in der getesteten OSWbb Version (7.3.0) leider nicht verwendbar.

2.3. Praxistipp

In einer produktiven Umgebung empfiehlt es sich, die Auswertung über den oswbba auf ein anderes System auszulagern. Somit vermeidet man es gegebenenfalls neue Java Versionen zu installieren und es wird keine unnötige Last erzeugt.

3. Links

Opens external link in new windowMy Oracle Support:

  • OS Watcher User's Guide (Doc ID 1531223.1)
  • OSWatcher Analyzer User Guide (Doc ID 461053.1)

Jede Menge Know-how für Sie!

In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.