Showing posts with label performance. Show all posts
Showing posts with label performance. Show all posts

Friday, 24 July 2009

OBIEE Windows PerfMon counters

Yet another way to access the BI Management data discussed here - through Windows' PerfMon tool.

This will only work for installations where your OBIEE server is running on Windows. You should be able to run PerfMon locally or remotely. Standard practise would be not to run it locally on a Production machine :-)

To run PerfMon go to Start->Run and enter perfmon, or navigate Start -> Settings -> Control Panel -> Administrative Tools -> Performance

By default a handful of metrics about your local machine are displayed:

Right click and Add Counters:
If you want to monitor a remote installation of OBIEE (on Windows only, remember) then enter the network name eg \\MYREMOTESERVER in 'Select counters from Computer:', otherwise set this to 'Use local computer counters'.

Then click on Performance object dropdown, and you should see a long list of Oracle BI performance objects:
Pick one of these and a list of counters within the object will be listed. You can add all, some or just one of these.


By default the Performance Counters are installed I think, but both NQSServer.exe and sawserver.exe have commandline options for reinstalling them (or uninstalling, if you want to):
NQSServer.exe /installperf
NQSServer.exe /uninstallperf


sawserver.exe /installperf

sawserver.exe /uninstallperf

PerfMon is documented well elsewhere on the web so I won't say much more other than that you can use it interactively or logging to file. The latter would be very useful for trending of performance data, you could even go full circle and analyse it with Answers :-)

Final thought is that exposing the data this way is very helpful for Systems Management, as you now have the option of using MOM/SCOM, etc to monitor and alert on your BI servers.

I would imagine some or all of the above functionality is also available through the BI Management Pack for Enterprise Manager, but this is another way to skin the cat.

Wednesday, 22 July 2009

Oracle BI Management / Systems Management MBeans

Part of looking at the various gubbins inside OBIEE led me to realise that the Oracle BI Management application drives quite a few things. It exposes MBeans (Management Beans, a java term), accessible through jmx.
In the installation of OBIEE this component is referred to as "Systems Management".

The MBeans give us real-time performance information, along with access to all the configuration options that are normally done through config files (instanceconfig.xml etc).
Bear in mind if using it for updating configuration instead of through the files you don't get any backup created, so for that reason alone I would suggest it should only be used for reading current values.


They can be accessed directly through jconsole, a java GUI distributed with java jdks, or oc4j (Oracle Containers For Java) which you'll either be running directly or as part of OAS.

@lex has details here about accessing through oc4j/OAS.
It's worth noting if you have done separate BI Server and Presentation Services installations then on your PS server you'll already have an application server running, but on your BI Server you might need to start oc4j (on unix: obiee/oc4j_bi/bin $nohup oc4j -start &)

The MBeans are used as a source for both perfmon and the BI Management Pack in EM.

Tuesday, 21 July 2009

JConsole / JMX - followup

A few points to add to my previous posting on JConsole:
  • As well as performance data, you have access to configuration data. Be aware that it is read-write! So whilst it might be a nice alternative to digging around for your instanceconfig.xml etc, you should be careful
  • If you have your BI Server and Presentation Services deployed on separate servers then you will only get MBeans for the relevant service:
  • If you want to view the values of the BI Server MBeans and your Presentation Services server is not on the same box then you have to use JConsole/JMX, as Performance Monitor will not have access to the values:

[Edit]
An alternative to jconsole is to access the Oracle BI Management MBeans through oc4j. @lex has details here
[/edit]

OBIEE admin tools & hacks

As a kid I loved the idea of lego where you can disassemble and reassemble something from the ground up. As soon as I got my hands on a computer it was the same. You can have your Acorn Archimedes with its games, where do I find the sprites and sound files behind it? Likewise Microsoft Word, let me at the VBA underneath to hack it around and see what else it can do.

With that in mind I've enjoyed discovering bits of the "underbelly" of OBIEE from manuals, blogs and a few SRs I've raised.

Here's my list so far, please feel free to add to it in the comments and correct any errors or missing credits :)

Oracle BI Management data
This server-based performance and diagnostic data can be access through at least two methods:

perfmon
Credit: http://obiee101.blogspot.com/2009/07/obiee-perfmon-performance-monitor.html


Go to http://[server]:[port]/analytics/saw.dll?perfmon and you'll get the Performance Monitor. This is the same data that's used by the BI Management Pack and is accessible through the jmx agent

oc4j MBeans
An alternative to jconsole is to access the Oracle BI Management MBeans through oc4j. @lex has details here

Windows perfmon
More details in separate post here

jmxagent / jconsole
The same data as through perfmon above, full details here: jmx agent
sawping
Credit: http://tipsonobiee.blogspot.com/2009/07/sawping.html
C:\OracleBI\web\bin>sawping.exe -help
sawping [-p port] [-s host] [-v (verbose mode)] [-q (quiet mode)] [-h]

C:\OracleBI\web\bin>sawping.exe -s myPSserver.company.net -v
Server alive and well
NB not got this working yet on unix:
obiee/web/bin64 $./sawping64
/usr/lib/hpux64/dld.so: Unable to find library 'libsawcomm643r.so'.
Found in [OracleBI Home]/web/bin (or Bin64)

nqcmd
Great little command line tool. We're using it for some crude load testing (get a bunch of logical-SQL statements and use unix scripting to fire them in parallel at the BI Server) as well as monitoring of the BI Server ("pinging" it regularly with some small logical-SQL to make sure it responds correctly)
Found in [OracleBI Home]/server/Bin (or Bin64)

UnixChk
(UNIX only, duh)
What it says on the tin - validates your Unix environment is suitable for OBIEE
Usage: UnixChk.sh [-b] [-s | ]
diagcap
Support asked me to run this, you'll find it in [OBIEE home]/server/Bin
Usage: ./diagcap.sh -d [-p] [-h]
-d : directory that info will be stored
The directory must be empty
-p : absolute path to Oracle BI root directory
May be omitted if the SAROOTDIR
environment variable is set
-h : show this help message

It collects all the config files and log files from your environment into a TAR archive, which you can then send to support.

tusc
Not OBIEE as such, but interesting for the truly nosy. This is a unix (HP) tool which you use to invoke a program and then get low-level diagnostics on what it's up to. Most of the output may be gobbledegook to all but the hardcore programmer, but it does sometimes pick out if a library file is missing etc.
For example to invoke nqqserver in run-sa.sh:
tusc -vfe ${ANA_BIN_DIR}/nqsserver 2>&1 &
Administration Tool
Maybe not so unknown, but has front-end for monitoring clusters which I liked

Other stuff
This is a list of binaries that might or might not be of interest and that I plan to have a play with at some point

NB obiee/setup/sa-init64.sh and common.sh scripts might need running first to set the environment variables correctly.

obiee/web/bin
  • cryptotools - used for generating keys for authentication between obiee/delivers/xmlp
  • sawmigrate - for migrating from older versions of OBIEE?

obiee/server/Bin
  • equalizerpds - For equalising RPDs?! Reference
  • ErrorMsgCheck (directory) - not sure
  • nqerrormsgcompiler - not sure
$nqerrormsgcompiler
ErrorMessageCompiler [
] []
Exiting
  • nqlogviewer - For parsing BI server logs. Can be useful for clustered instances?
  • nqschangepassword - For changing of RPD user passwords
  • nqscripthostexec - not sure
$nqscripthostexec
Usage: nqscripthostexec Memory fault(coredump)
  • nqsshutdown - To shut down a BI Server via DSN reference (see here)
  • nqsudmlcli - something to do with UDML?
  • nqudmlexec - executing UDML against the RPD?
  • nqudmlgen - generating UDML to run against the RPD?
  • openssl - OpenSSL command line
  • sametaexport - Oracle Database Metadata Generator. See Oracle Business Intelligence Server Administration Guide and Venkat's blog
  • saschinvoke - invoke Delivers jobs & iBots (see here)
  • schconfig - Scheduler [Delivers] configuration program
  • schshutdown - Shutdown Scheduler remotely?

In Googling these various binaries I found an excellent PDF from Andreas Nobbmann's presentation in Brighton earlier this year: Scripting OBIEE - Is UDML and XML all you need?

Another useful page is here: http://gerardnico.com/wiki/dat/obiee/executable_files/start

Thursday, 16 July 2009

JConsole / JMX

[edit] See this post too [/edit]
On an OBIEE server run
nohup obiee/systemsmanagement/runagent.sh &
and then run jconsole (make sure you've set the DISPLAY first if you're running it from UNIX).
NB: if you don't have jconsole in your path you can search for it:
$whereis jconsole
jconsole: /opt/java1.5/bin/jconsole /opt/java6/bin/jconsole
You should find it under your java/bin directory

You should get this kind of connection dialog:

Click connect, and the console will launch. From here click on the MBeans tab, where you've got access to performance and configuration data


You can connect to the agent remotely too, but to do this you need to amend runagent.sh script:
On the java_cmd line replace
-Dcom.sun.management.jmxremote
with
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9980 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false

See here for more information on configuring jmx



The BI Management Pack uses the agent for collecting its data. The data also looks like it's accessible at http://[server]:[port]/analytics/saw.dll?perfmon (hat-tip: John Minkjan)