New functionality for swingbench...

A small but significant set of changes

Last weekend I updated swingbench to add a few features that I’ve had frequent requests for. One is the addition of database time wait event classes to be output via Charbench’s vmstat like output. You can also monitor the state of the connection pool from the command line. One other requested feature is to remove the requirement to chart/output CPU and I/O via ssh and use the database own internal data gathering. I also had some fun updating the icons for those of us lucky enough to have high DPI monitors. It’s a small thing and essentially won’t benefit anyone. It doesn’t change functionality but it was bothering me.

The power of the command line

I’ll be honest, most of my testing in swingbench is done from the command line. I rarely use the UI unless it’s for demos, where charting something in realtime can me more compelling. So why use the command line? I do it purely because of the convenience and ability to script complex scenarios. My testing typically involves looking at improvements we’ve made in a new release of the Oracle Database and seeing what the impact is. Or seeing how a feature changes with the data size or the shape of the server. For those sort of repeatable scenarios, the command line is king. I might script ten runs to be run one after another, changing a small metric or enabling a specific feature and record the changes. Recently I added colour output to command line. Again for most people this won’t be a big change and it indeed might annoy them, but for me it adds a bit of interest to what could be just a bunch of numbers scrolling up the screen.

Taking advantage of that colour output I added three new outputs for charbench. The first is ability to monitor your connection pool usage in verbose mode “-v” with the new option “pool”. To do this you’d have command similar to the following

./charbench -cs // -u soe -p soe -c ../configs/SOE_Client_Side.xml -v users,trem,tps,errs,pool -intermin 0 -intermax 0 -min 0 -max 0 -uc 25 -rt 0:0.30  -dbau "sys as sysdba" -dbap secretpassword

Where the “-v users,trem,tps,errs,pool” asks charbench to show

  • users the users connected
  • trem the time remaining in the test
  • tps the transactions per second
  • errs the error count
  • pool the status of the connection pool which should result in the following output

full The columns show

  • Available : The connections in the pool that are free for use
  • Borrowed : The connections that are currently being used by sessions/threads
  • Created : The total number of connections that have been created. This may change as connections in the pool are closed and recreated
  • Closed : The connections that have been closed. This may happen during a failover to another server or the pool “refreshing” the connection
  • WaitTime : How long on average a connection had to wait for a connection to become free in the pool

The second new option for verbose mode “-v” is the ability to monitor the the database waitevent class for the workload you are running. This is particularly useful when tracking down problems like slow I/O, CPU contention etc. It’s just a guide, but does help you get started on what you might need to do to optimise your database and server.

Similar to the previous example you add the new option “dbtime” to the the verbose option resulting in a command line similar to

./charbench -cs // -u soe -p soe -c ../configs/SOE_Client_Side.xml -v users,trem,tps,errs,dbtime -intermin 0 -intermax 0 -min 0 -max 0 -uc 25 -rt 0:0.30  -dbau "sys as sysdba" -dbap secretpassword

This will result in output similar to

full You’ll note that the output is colour coded and similar to colours used in tools that monitor Oracle Database wait events.

One feature that is long over due is removing the requirement to include ssh credentials to monitor CPU and IO on the target database. In this version swingbench gets the information from the Oracle Database target. The only thing is the need to provide admin access (user with access to the needed V$ tables).

To support this I’ve added another option for verbose “-os, which will display a set of OS stats. So the command

./charbench -cs // -u soe -p soe -c ../configs/SOE_Client_Side.xml -v users,trem,tps,errs,os -intermin 0 -intermax 0 -min 0 -max 0 -uc 25 -rt 0:0.30  -dbau "sys as sysdba" -dbap welcome1

will show the following


NOTE : It’s possible to turn of colour output with the -nc command line option.

High DPI Icons

If you’re lucky enough to have a high DPI or Retina monitor one of the things you may have noticed is that the swingbench icons looked a little blurred. In this release I spent some time reworking the icons and creating multiple versions of them at different resolutions 16x16, 32x32, 64x64 pixels. Whilst most people won’t notice this change I found the exercise interesting. I’ll post the Java code needed to do this as well, it should be much easier than it is.


You can download the new version here


New functionality for swingbench…

4 minute read

A small but significant set of changes Last weekend I updated swingbench to add a few features that I’ve had frequent requests for. One is the addition of da...

Swingbench 2.7 June 2023 Update

less than 1 minute read

A new build of Swingbench with a whole bunch of small changes mainly related to the benchmarks. Faster build time for the JSON benchmark when creating lar...

Size Makes A Difference

6 minute read

In my previous post “Going Big” I discussed the difference testing a data set of a representative size can make to the usefulness of a benchmark. Running a w...

Going Big

9 minute read

Swingbench makes it simple to generate a dataset that you can simulate transactions against. However one of the problems I commonly see is that the users of ...

Back to Top ↑


Swingbench 2.7

1 minute read

Swingbench 2.7 So I finally found some time to get a new build of swingbench done. The big change is that swingbench now only supports JDK-17 and above. Now,...

A new build of DB Time Monitor

less than 1 minute read

Following quickly on the heels of the update to MonitorDB I’m releasing a new build of DBTimeMonitor. This is a simple update using the latest Oracle jdbc dr...

A new build of MonitorDB

less than 1 minute read

I’ve just updated MonitorDB. It’s never going to replace Grafana but if you need a quick solution to monitor a few values inside of the Oracle Database and y...

Making Colour work on the Command Line for Windows

less than 1 minute read

I’ll make a confession. I don’t own a Microsoft Windows Machine. I never have and probably never will. This means that I generally never get the oppertunity ...

A New Release of Swingbench

2 minute read

A New Release of Swingbench… Along with a new website, I’m rolling out a new build of Swingbench. This release is a little embarrassing for me, as it include...

A New Look

2 minute read

A New Start… Quite a lot has changed since I last posted on this website. I had just left Oracle to join Google… A year and a half later I returned to Oracle...

Back to Top ↑