This article is the fourth in a series about performance and OBIEE. In previously articles I described how test design should be approached, and in this article I explain in detail how to use some of the tools available to build the tests.
JMeter
JMeter is open-source software maintained by the Apache Software Foundation. It is a flexible and powerful tool that has a GUI design interface that can run on any java-supporting desktop (e.g. Windows/Linux/Mac). The test execution can be run from the GUI, or “headless” from the commandline.
To get started with JMeter, simply download it, and uncompress the archive (tgz / zip). Go to the
bin
folder and doubleclick on jmeter.sh or jmeter.bat. This will launch JMeter.
There are plenty of JMeter tutorials on the web and I am not going to replicate them here. Any tutorial that demonstrates how to record a web browsing session into a JMeter script should suffice for creating an initial OBIEE load test. Below I will detail some specifics that it is useful to be aware of.
- When a user clicks on a dashboard in OBIEE, the server returns shortly after the text “Loading…”. You need to make sure that your test doesn’t incorrectly accept this as the completed report. There are a couple of ways to do this:
- Design your test so that it waits until the text isn’t “Loading…”
- Set NewCursorWaitSeconds in
instanceconfig.xml
so that the “Loading…” text isn’t displayed before the query results are returned. See this blog post for more details
- The JMeter Plugins are very useful for additional graphing options and better user control (eg jp@gc – Stepping Thread Group)
- Try to use variables throughput to increase code reusability and reduce maintenance. It’s worth taking time to refactor a test that has evolved into something complex.
- Use the Constant Timer object to add think time
Response Assertion
steps are a very good way of ensuring that your test is getting the result it should at each stage. For example, to check the OBIEE login page is loading, check forEnter your user id and password.
.- Use the Not option in a
Response Assertion
to check for things that definitely shouldn’t be there, such asOdbc driver returned an error
orLoading…
- For a flexible test, parameterise the dashboard pages fetched. This is done in several stages:
- Add a CSV Data Set Config step, configured to read a TSV (Tab-Separated) file from a path you specify. NB relative paths in JMeter are relative to the folder that the JMeter script (JMX) resides
- Add a CSV Data Set Config step, configured to read a TSV (Tab-Separated) file from a path you specify. NB relative paths in JMeter are relative to the folder that the JMeter script (JMX) resides
Configuring SHMMAX and SHMALL for Oracle in Linux
SHMMAX and SHMALL -
SHMMAX is the maximum size of a single shared memory segment set in “bytes”.
silicon:~ # cat /proc/sys/kernel/shmmax536870912
536870912 = 512 kB -> (512 * 1024 * 1024)
SHMALL is the total size of Shared Memory Segments System wide set in “pages”.silicon:~ # cat /proc/sys/kernel/shmall
1415577
==============================================================================================The key thing to note here is the value of SHMMAX is set in "bytes" but the value of SHMMALL is set in "pages".==============================================================================================