Swingbench 博客合集

Swingbench

Dominic Giles Blog

SBUtil inAction (And Some Fixes)

12/03/15 18:44

As a means of demonstrating what you can achieve with SBUtil I’ve createda little test to show it’s possible to trivially change the size of the dataset and rerun the same workload to show how TPS can vary if the SGA/BufferCache is kept consistent.

First the script

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

#!/bin/bash

 

sqlplus sys/welcome1@//ed2xcomp01/DOMS as sysdba << EOF

create bigfile tablespace SOE datafile size 1000G;

exit;

EOF

 

time ./oewizard -scale 1 -dbap welcome1 -u soe -p soe -cl -cs //ed2xcomp01/DOMS -ts SOE -create

 

time ./charbench -u soe -p soe -cs //ed2xcomp01/DOMS -uc 128 -min -0 -max 0 -stats full -rt 0:10 -bs 0:01 -a -r resscale01.xml

 

time ./sbutil -u soe -p soe -cs //ed2xcomp01/DOMS -soe -parallel 64 -dup 2 

 

time ./charbench -u soe -p soe -cs //ed2xcomp01/DOMS -uc 128 -min -0 -max 0 -stats full -rt 0:10 -bs 0:01 -a -r resscale02.xml

 

time ./sbutil -u soe -p soe -cs //ed2xcomp01/DOMS -soe -parallel 64 -dup 2

 

time ./charbench -u soe -p soe -cs //ed2xcomp01/DOMS -uc 128 -min -0 -max 0 -stats full -rt 0:10 -bs 0:01 -a -r resscale04.xml

 

time ./sbutil -u soe -p soe -cs //ed2xcomp01/DOMS -soe -parallel 64 -dup 2

 

time ./charbench -u soe -p soe -cs //ed2xcomp01/DOMS -uc 128 -min -0 -max 0 -stats full -rt 0:10 -bs 0:01 -a -r resscale08.xml

 

time ./sbutil -u soe -p soe -cs //ed2xcomp01/DOMS -soe -parallel 64 -dup 2

 

time ./charbench -u soe -p soe -cs //ed2xcomp01/DOMS -uc 128 -min -0 -max 0 -stats full -rt 0:10 -bs 0:01 -a -r resscale16.xml

 

time ./sbutil -u soe -p soe -cs //ed2xcomp01/DOMS -soe -parallel 64 -dup 2

 

time ./charbench -u soe -p soe -cs //ed2xcomp01/DOMS -uc 128 -min -0 -max 0 -stats full -rt 0:10 -bs 0:01 -a -r resscale32.xml

 

time ./sbutil -u soe -p soe -cs //ed2xcomp01/DOMS -soe -parallel 64 -dup 2

 

time ./charbench -u soe -p soe -cs //ed2xcomp01/DOMS -uc 128 -min -0 -max 0 -stats full -rt 0:10 -bs 0:01 -a -r resscale64.xml

 

time ./sbutil -u soe -p soe -cs //ed2xcomp01/DOMS -soe -parallel 64 -dup 2

 

time ./charbench -u soe -p soe -cs //ed2xcomp01/DOMS -uc 128 -min -0 -max 0 -stats full -rt 0:10 -bs 0:01 -a -r resscale128.xml

 

time ./sbutil -u soe -p soe -cs //ed2xcomp01/DOMS -soe -parallel 64 -dup 2

 

time ./charbench -u soe -p soe -cs //ed2xcomp01/DOMS -uc 128 -min -0 -max 0 -stats full -rt 0:10 -bs 0:01 -a -r resscale256.xml



I’m hoping it should be fairly obvious what the script does. I create atablespace big enough to accommodate the final data set (In this instance 1TB).This way I’m not constantly auto extending the tablespace. Then I create a seedschema at 1GB in size. Then I run a workload against the schema, this willremain constant through all of the tests. Each of the load tests runs for 10minand collects full stats. After the test has completed I use “sbutil” toreplicate the schema and simply rerun the workload writing the results to a newfile. By the end of the tests and duplication the end schema has roughly ½ aTerabytes worth of data and about the same in indexes. The benefit of thisapproach is that it’s much quicker to expand the data than using the wizard todo it.

The directory will now contain all of the results files which can be processedtrivially using the the “parse_results.py” script in utils directory. In theexample below I simply parse all of the files and write the result to a filecalled res1.csv. Because the python script is so easy to modify you could pullout any of the stats from the file. I’m just using the ones that it collects bydefault

1

$ python ../utils/parse_results.py -r resscale01.xml    resscale02.xml    resscale04.xml    resscale08.xml    resscale16.xml    resscale32.xml    resscale64.xml    resscale9128.xml  resscale9256.xml -o res1.csv


On completing this step I can use my favourite spread sheet tool to loadres1.csv and take a look at the data. In this instance I’m using “Numbers” onOS X but Excel would work equally as well. 



The resulting chart shows pretty much what we’d expect .That doubling the sizeof the datasets but keeping the workload and SGA constant results in areduction of the TPS. Which tails off quickly as the data set quickly outgrowsthe buffer cache and we are forced to perform physical IOs, but declines lessslowly after this impact is felt. It’s something we would expect but it’s niceto able to demonstrate it.



So the next obvious question is how easy is it to rerun the test but to enablea feature like partitioning. Really easy. Simply ask oewizard to create theschema using hash partitioning i.e. change

1

time ./oewizard -scale 1 -dbap welcome1 -u soe -p soe -cl -cs //ed2xcomp01/DOMS -ts SOE -create


to

1

time ./oewizard -scale 1 -hashpart -dbap welcome1 -u soe -p soe -cl -cs //ed2xcomp01/DOMS -ts SOE -create


and rerun the tests to produce the following results




Or even enabling compression and partitioning by simply replacing the firstsbutil operation with

1

time ./sbutil -u soe -p soe -cs //ed2xcomp01/DOMS -soe -parallel 64 -dup 2 -ac






During the testing of this I fixed up a few bugs which I wasn’t aware of soit’s worth downloading a new build which you can find here. I also released Ineeded a few more options on the utility to round it out. These were

·        “seqs” : thisrecreates the sequences used by the schemas

·        “code” : rebuilds anystored procedures


I’ll most likely add a few more over the coming weeks.

Just a word of caution… I’ve noticed that my stats collection is broken. Idon’t cater for all of the possible version/configurations in my script and soit can break on large stats collections and go serial. I’ll try and fix thisnext week.


2 Comments

SwingbenchUtil... Going Big...

07/03/15 16:55

I’ve added a utility to swingbench that perhaps I should’ve done a longtime ago. The idea behind it is that it enables you to validate, fix orduplicate the data created by the wizards. I’m often contacted by people askingme how to fix an install of “Order Entry” or the “Sales History” benchmarkafter they’ve been running for many hours only to find they run out of tempspace for the index creation. I’m also asked how they can make a really big“Sales History” schema when they only have relatively limited compute power andto create a multi terabyte data set might take days. Well the good news is thatnow, most of this should be relatively easy. The solution is a little programcalled “subtil” and you can find it in your bin or win bin directory. 

Currently sbutil is command line only and requires a number of parameters toget it to do anything useful. The main parameters are

·        “-dup” indicates the number of times youwant data to be duplicated within the schema. Valid values are 1 to n. Data iscopied and new primary keys/foreign keys generated where necessary. It’srecommended that you first increase/extend the tablespace before beginning theduplication. The duplication process will also rebuild the indexes and updatethe metadata table unless you specifically ask it not to with the “-nic”option. This is useful if you know you’ll be reduplicated the data again at a laterstage.

·        “-val” validates the tables and indexesin the specified schema. It will list any missing indexes or invalid code.

·        “-stats” will create/recreate statisticsfor the indicated schema

·        “-delstats” will delete all of thestatistics for the indicated schema

·        “-tables” will list all of the tablesand row counts (based on database statistics) for the indicated schema

·        “-di” will drop all of the indexes forthe indicated schema

·        “-ci” will recreate all of the indexesfor the indicated schema

Alongside of these verb based parameters are a number of associatedattributes

·        “-u” : required. the username of theschema

·        “-p” : required. the password of theschema

·        “-cs” : required. the connect string ofthe schema. Some examples might be “localhost:1521:db12c”, “//oracleserver/soe”“//linuxserver:1526/orcl” etc.

·        “-parallel” the level of parallelism touse to perform operations. Valid values are 1 to n.

·        “-sort” sort the seed data beforeduplicating it.

·        “-nic” don’t create indexes orconstraints at the end of a duplication

·        “-ac” convert the “main” tables toadvanced compression

·        “-hcc” convert the main tables to HybridColumnar Compression

·        “-soe” : required. the target schemawill be “Order Entry”

·        “-sh” : required. the target schema willbe “Sales History”

So lets take a look at a few examples.

1

sbutil -u soe -p soe -cs //oracleserver/soe -dup 2 -parallel 32 -sort -soe


will duplicate the data in the soe schema but will first sort the seed data.You should see output similar to this

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

Getting table Info

Got table information. Completed in : 0:00:26.927

Dropping Indexes

Dropped Indexes. Completed in : 0:00:05.198

Creating copies of tables

Created copies of tables. Completed in : 0:00:00.452

Begining data duplication

Completed Iteration 2. Completed in : 0:00:32.138                                                  

Creating  Constraints

Created  Constraints. Completed in : 0:04:39.056

Creating  Indexes

Created  Indexes. Completed in : 0:02:52.198

Updating Metadata and Recompiling Code

Updated Metadata. Completed in : 0:00:02.032

Determining New Row Counts

Got New Row Counts. Completed in : 0:00:05.606

Completed Data Duplication in 0 hour(s) 9 minute(s) 44 second(s) 964 millisecond(s)

----------------------------------------------------------------------------------------------------------

|Table Name          |  Original Row Count|       Original Size|       New Row Count|            New Size|

----------------------------------------------------------------------------------------------------------

|ORDER_ITEMS         |         172,605,912|             11.7 GB|         345,211,824|             23.2 GB|

|CUSTOMERS           |          40,149,958|              5.5 GB|          80,299,916|             10.9 GB|

|CARD_DETAILS        |          60,149,958|              3.4 GB|         120,299,916|              6.8 GB|

|ORDERS              |          57,587,049|              6.7 GB|         115,174,098|             13.3 GB|

|ADDRESSES           |          60,174,782|              5.7 GB|         120,349,564|             11.4 GB|

----------------------------------------------------------------------------------------------------------



The following example validates a schema to ensure that the tables and indexesinside a schema are all present and valid

1

./sbutil -u soe -p soe -cs //ed2xcomp01/DOMS -soe -val


The output of the command will look similar to to this

1

2

3

4

5

6

7

8

9

10

11

The Order Entry Schema appears to be valid.

 

--------------------------------------------------

|Object Type    |     Valid|   Invalid|   Missing|

--------------------------------------------------

|Table          |        10|         0|         0|

|Index          |        26|         0|         0|

|Sequence       |         5|         0|         0|

|View           |         2|         0|         0|

|Code           |         1|         0|         0|

--------------------------------------------------



The next command lists the tables in a schema

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

./sbutil -u soe -p soe -cs //ed2xcomp01/DOMS -soe -tables

 

Order Entry Schemas Tables

----------------------------------------------------------------------------------------------------------------------

|Table Name                  |                Rows|              Blocks|           Size|   Compressed?|  Partitioned?|

----------------------------------------------------------------------------------------------------------------------

|ORDER_ITEMS                 |          17,157,056|             152,488|         11.6GB|              |           Yes|

|ORDERS                      |           5,719,160|              87,691|          6.7GB|              |           Yes|

|ADDRESSES                   |           6,000,000|              75,229|          5.7GB|              |           Yes|

|CUSTOMERS                   |           4,000,000|              72,637|          5.5GB|              |           Yes|

|CARD_DETAILS                |           6,000,000|              44,960|          3.4GB|              |           Yes|

|LOGON                       |                   0|                   0|        101.0MB|              |           Yes|

|INVENTORIES                 |                   0|                   0|         87.0MB|      Disabled|            No|

|PRODUCT_DESCRIPTIONS        |                   0|                   0|         1024KB|      Disabled|            No|

|WAREHOUSES                  |                   0|                   0|         1024KB|      Disabled|            No|

|PRODUCT_INFORMATION         |                   0|                   0|         1024KB|      Disabled|            No|

|ORDERENTRY_METADATA         |                   0|                   0|         1024KB|      Disabled|            No|

----------------------------------------------------------------------------------------------------------------------



To drop the indexes in a schema use the following command

1

2

3

./sbutil -u sh -p sh -cs //oracle12c2/soe -sh -di

Dropping Indexes

Dropped Indexes. Completed in : 0:00:00.925



To recreate the indexes in a schema use the following command

1

2

3

./sbutil -u sh -p sh -cs //oracle12c2/soe -sh -ci

Creating Partitioned Indexes and Constraints

Created  Indexes and Constraints. Completed in : 0:00:03.395


You can download the new version of the software 
here.

Tags: swingbenchutilscaleout

0 Comments

And now a fixto the fixes...

16/01/15 18:36

Just realised I uploaded the last build with Oracle Database 12c Release 1(12.1.0.1) jdbc drivers. I’ve fixed that (now 12.1.0.2 drivers) and so feelfree to download again.

Thanks 

Dom.

0 Comments

Fixes toswingbench

14/01/15 12:01

Happy new year….

I’ve updated swingbench with some fixes. Most of these are to do with the newresults to pdf functionality. But at this point I’m giving fair warning thatthe following releases will be available on Java 8 only.

I’m also removing the “3d” charts from swingbench and replacing them with a richerselection of charts build using JavaFX. 

Also I’ve added some simple code to the jar file to tell you which version itis… You can run this with the command

1

2

$ java -jar swingbench.jar

Swingbench Version 2.5.955


As always you can download it 
here. Please leave comments below if you run into any problems.

18 Comments

ApplicationContinuity in Oracle Database 12c (12.1.0.2)

19/11/14 13:53

In this entryI’ll try and detail the steps required to get application continuity workingwith swingbench. I’ll create a video with a complete walk through of the build.It’s also possible this blog is likely to be updated regularly as I getfeedback

Assumptions


The following assumptions are made

·        You have a working Oracle RAC Database12c ideally running at version 12.1.0.2 (Database and Clusterware)

·        You have downloaded the very latest version of swingbench

·        You’ve installed the SOE benchmark usingthe oewizard

·        You’re running on a Physical or VirtualMachine (Virtual Box)

·        You are using the thin jdbcdriver with swingbench

 

My configuration


In this example I’m using a 2 node RAC cluster for simplicity but I’vevalidated the configuration on an 8 node cluster as well. My configuration

OS : Linux 6
Nodes : RAC1, RAC2
SCAN : racscan
CDB : orcl
PDB : soe
schema : soe

So after you’ve confirmed that the soe benchmark has been installed correctlythe next step is to define the services. I created two new ones to show thedifference between Application Continuity and standard Fast ApplicationFailover. First a non Application Continuity Service

1

2

3

4

5

srvctl add service -d orcl -s soepdb -pdb soe -preferred orcl1,orcl2

srvctl modify service -db orcl -service soepdb -failoverdelay 5

srvctl modify service -db orcl -service soepdb -failoverretry  60

srvctl modify service -db orcl -service soepdb -clbgoal SHORT

srvctl modify service -db orcl -service soepdb -rlbgoal SERVICE_TIME



Now a service defined for Application Continuity

1

2

3

4

5

6

7

srvctl add service -db orcl -service soepdb_ac -commit_outcome TRUE -retention 86400 -preferred orcl1,orcl2

srvctl modify service -db orcl -service soepdb_ac -failovertype TRANSACTION

srvctl modify service -db orcl -service soepdb_ac -failoverdelay 5

srvctl modify service -db orcl -service soepdb_ac -failoverretry  60

srvctl modify service -db orcl -service soepdb_ac -session_state STATIC

srvctl modify service -db orcl -service soepdb_ac -clbgoal SHORT

srvctl modify service -db orcl -service soepdb_ac -rlbgoal SERVICE_TIME


Then grant access to the Application Continuity package to the SOE use

1

SYS@//rac1/soepdb > GRANT EXECUTE ON DBMS_APP_CONT TO SOE;


And thats it for the database/grid. All we need to do now is to configureswingbench to connect to the services. You can do this either in the commandline, swingbench GUI or by editing the config file. The connect string shouldlook similar to this (for application continuity)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

(DESCRIPTION=

  (TRANSPORT_CONNECT_TIMEOUT=5)

  (RETRY_COUNT=6)

  (FAILOVER=ON)

  (ADDRESS =

    (PROTOCOL = TCP)

    (HOST = racscan)

    (PORT = 1521)

  )

  (CONNECT_DATA=

    (SERVER = DEDICATED)

    (SERVICE_NAME = soepdb_ac)

  )

)



NOTE : EZConnect strings won’t work for this.

We’ll also need to use connection pooling. The pool definition is only exampleand should reflect the total number of threads you plan to run with. If you’veedited the definition in the config file you should end up with somethingsimilar to

1

2

3

4

5

6

7

8

9

<connectionpooling>

            <pooledinitiallimit>40</pooledinitiallimit>

            <pooledminlimit>20</pooledminlimit>

            <pooledmaxlimit>60</pooledmaxlimit>

            <pooledinactivitytimeout>50</pooledinactivitytimeout>

            <pooledconnectionwaittimeout>45</pooledconnectionwaittimeout>

            <pooledpropertycheckinterval>10</pooledpropertycheckinterval>

            <pooledabandonedconnectiontimeout>120</pooledabandonedconnectiontimeout>

</connectionpooling>


Or if you modify it via the GUI.



The final step is to enable the application continuity driver and FAN you canagain do this in the config file with the following settings 

1

2

3

4

5

6

7

<properties>

            <property key="StatementCaching">50</property>

            <property key="FastFailover">true</property>

            <property key="FetchSize">20</property>

            <property key="OnsConfiguration">nodes=rac1:6200,rac2:6200</property>

            <property key="AppContinuityDriver">true</property>

</properties>


or via the GUI



For my test I used the following Load configuration

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<load>

        <numberofusers>60</numberofusers>

        <mindelay>0</mindelay>

        <maxdelay>0</maxdelay>

        <intermindelay>50</intermindelay>

        <intermaxdelay>500</intermaxdelay>

        <querytimeout>120</querytimeout>

        <maxtransactions>-1</maxtransactions>

        <runtime>0:0</runtime>

        <logongroupcount>5</logongroupcount>

        <logondelay>1000</logondelay>

        <logoutposttransaction>false</logoutposttransaction>

        <waittillalllogon>false</waittillalllogon>

        <statscollectionstart>0:0</statscollectionstart>

        <statscollectionend>0:0</statscollectionend>

        <connectionrefresh>0</connectionrefresh>

</load>


Or via the GUI



My complete config file is available 
here for reference

I’d initially suggest running with swingbench to enable the monitoring oferrors. Start swingbench




You should see a balanced number of users logged on across your instances.Although though may fluctuate depending on a number of factors.



The next step is to cause an unexpected termination of one of the resources.I’d suggest killing PMON i.e. 

[oracle@rac2 ~]$ ps -def | grep pmon

oracle    4345     1  0 05:00 ?        00:00:00 asm_pmon_+ASM2

oracle   18093     1  0 08:11 ?        00:00:00 ora_pmon_orcl2

oracle   25847  6655  0 08:37 pts/1    00:00:00 grep pmon

[oracle@rac2 ~]$ kill -9 18093


You should see a little disruption in the TPS as you kill the instance. Howlong will depend on your RAC configuration and power of machine. The followingscreen shot is from 2 VMs running on my mac. But the important point is thatswingbench won’t get any errors.




To try and see what happens without application continuity try changing theconnect string to point at the non application continuity service.



Then delete the property that forces swingbench to use the ApplicationContinuity Driver.



Rerunning and terminating the instance should result in something like this.



The important point here is the errors which normally an application developerwould need to handle without the guarantee of transactions not being appliedmore than once.




3 Comments

Ever soslightly embarassing

31/07/14 18:00

I’ve had toupdate swingbench again. I thought I made a minor refactoring update andmanaged to break more than I’d bargained for. Please use this version Buildnumber 932.

You can download it 
here 


11 Comments

Minor driverupdate to swingbench and dbtimemonitor

30/07/14 12:42

I’ve posted aminor update to swingbench and dbtimemonitor to bring them up to the latestversions of the jdbc drivers and fix a “few” niggling bugs. Please refresh tothese builds particularly if you plan to do any 12.1.0.2 testing in the future.

You can as always download them from 
here

7 Comments

New jdbcdrivers for swingbench

23/07/14 12:07

With the launchof Oracle Database 12c Release 1 (12.1.0.2) I’ve taken the opportunity toupdate the jdbc drivers that swingbench uses. If you’re testing UCP or FAN Istrongly recommend using these new drivers.

You can download it 
here

1 Comment

New build ofswingbench with improved stats

13/07/14 09:23

I’ve uploaded anew build of swingbench that fixes a number of bugs but also improves on thestats being produced.

One problem with using averages when analysing results is that they hide amultitude of evils. This is particularly true for response times where thereare likely to be big skews hidden if just the average is considered. You cansee this in the chart below where response times are mapped into 100 buckets.The response time range from 2 to 6274 milliseconds. The average is 257ms.



It might be that in many instances the average is adequate for your needs butif your interested in the spread of results and the impact metrics like usercounts, IO, memory etc have on the responsiveness of your system it might alsobe useful to model the spread of response so you can look for outliers.

In the latest build of swingbench when you now specify full stats collectionyou end up with a more complete set of results as shown below

257.86816475601097 2 6274 117.80819459762236 276.682001642648676552.9300329826 7.96379726468569 1.7844202125604447 14 25 43 87 170 257 354466 636 21495, 5260, 4380, 4084, 3929, 3798, 3266, 2756, 2303, 1801, 1465,1138, 889, 632, 499, 381, 259, 201, 140, 105, 102, 55, 43, 21, 21, 21, 17, 12,9, 4, 5, 3, 12, 1, 6, 3, 7, 5, 1, 1, 6, 1, 2, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 59142 0 0

I’ve included a complete set of percentiles and some additional metrics forconsideration (variance, Kurtosis, Skewness, Geometric Mean). Over the comingweeks I’ll be attempting to process a results file into a more useful document.

You can enable stats collection in the UI from the preferences tab i.e.



You can also set it from the command line. i.e.

./charbench -bg -s -stats full -rt 0:04 -cs //oracle12c2/orcl -a -uc 25-com "Test of full stats collection" -intermin 2 -intermax 2 -bs 0:01-be 0:04 &

One thing to watch out for is that you may need to change the metric thattransactions are measure in i.e. from milliseconds to microseconds to model abetter spread of response times.

Along side the improvements to stats I’ve also fixed the following

·        Fixed windowed stats collection (-be -bs) and full stats(-stats full) working together

·        Fixed the -bg (background) option so it works on Solaris

·        Numerous stability fixes


You can download the code front he usual place 
here

Tags: swingbench

11 Comments

New build ofswingbench

22/05/14 17:17

I’ve justfinished a new build of swingbench and the command line got a little bit oflove. I’ve added the following new functionality


·        Added new transactions to sh benchmark

·        Percentiles now report 10th to 90th percentiles insteadof just 25th,50th and 75th percentile

·        Added a new command line option to allow users to changestats collection target.

·        Fixed the command line option “-bg” so it’s possible tobackground charbench

·        Added new commands to coordinator to make it simpler touse

·         

o   Changed -stop to -kill to better indicate what it does

·         

o   Changed -halt to -stop to indicate what it does

·         

o   Added -stopall to stop all attached clients

·         

o   Added -runall to start all attached clients

·         

o   Added -stats to enable all display aggregated transactionrates of all attached clients

·        Included python script to parse the one or more resultsfiles into csv format (located in $SWINGHOME/utils)

·        forced users to specify either -create, -drop or-generate when specify character mode (-c)


The functionality enabling you to background and the changes to the coordinatormight need a little more explaining. The idea is that you might want to run upmore than one load generator either because you want to create a trulytremendous load you want to run different load generators at differentdatabases. To do this you might want to use a combination of backgrounding theload generators and using the coordinator to start,stop and report on them. Forexample

$ ./coordinator &$ ./charbench -cs //oracle12c/pdb1 -bg -s -uc 25 -colocalhost &$ ./charbench -cs //oracle12c/pdb2 -bg -s -uc 25 -co localhost& $ ./charbench -cs //oracle12c/pdb3 -bg -s -uc 25 -co localhost &$./coordinator -runall$ ./coordinator -statsAggregated results for 3 loadgeneratorsUse Ctrl-C to halt stats collection Time Users TPM TPS 17:52:03 753898 460 17:52:06 75 5263 483 17:52:09 75 6669 489. . .. . .$./coordinator-stopall$./coordinator -kill

Note : to background charbench you must specify -bg (it indicatesthe client will no longer be taking input from stdin)

You can download it as usual from 
here 


9 Comments

Fixes come inthick and fast...

20/11/13 14:15

Yet another fixand some more minor UI changes.

In fixing some code I regressed some basic functionality. In the last build ifyou restarted a benchmark from within the swingbench and minibench GUI it gaveyou an error and you had to restart swingbench to get it going again. This isnow fixed in this new build.

I also took the time to add some functionality to enable you to specify Interand Intra sleep times. You can do this in the “Load” tab as shown below



It gives me the opportunity to explain the difference between inter and intrasleep times. As the name implies intra sleep times occur “inside” of atransaction. Inter sleep times occur between transactions. Many of thetransactions inside of the swingbench “SOE” have sleep times between DMLoperations (select, insert, update). In some situations this better emulateswhat happens in some legacy form based systems, this is what is controlled byintra sleep times. However most systems these days tend to utilise web basedfront ends where DML operations tend to be fired as a single operation when theuser submits a form. This approach results in a more scalable architecture withfewer locks being held and for shorter periods of time. Hopefully the followingdiagram will explain the differences in a clearer fashion.



You can also set the intra and inter sleep time from the command line with the-min (intra min) -max (intramax) -intermin (inter min) -intermax (inter max).

Tags: swingbench

0 Comments

First Updateto Swingbench 2.5

11/11/13 21:14

Just a small update to swingbench... You can download the new build here

It fixes a few of bugs

·        Incorrect partitioning defaultsspecified in the oewizard and shwizards configuration files

·        Incorrect profile of transactions for“sh” benchmark

·        “sh” benchmark transaction generatedqueries for future values that didn’t exist

·        Checks not performed on allowedpartitioning values in configuration files for wizard when run in command line

I’ve also added some functionality that should have been put in a longtime ago. A drop down list of values for the connection properties. In previousversions of swingbench unless you knew the key values for a connection propertyit was impossible to add one. The new drop down list should make it mucheasier.



So the next obvious question is “What are all the connection properties and whydid it take you so long to tell us?”. I have no idea why it took so long totell people what they were. Consider it an over sight but let me try andcorrect that now.




Connection Properties

Description

StatementCaching

This specifies the number of statements to be cached. Valid value is an integer 

DNSLoadBalancing

Force jdbc to connect to more than one scan listener. Valid values are true or false

FastFailover

Activate Oracle’s Fast Failover connection functionality. Valid values are true or false

TcpNoDelay

Sets TCP_NODELAY of a socket. Valid values are true or false

OnsConfiguration

The remote configurations of Oracle Notification Servers (ONS). Valid values are similar to this “nodes=dbserver1:6200,dbserver2:6200”. See Oracle documentation for more details and examples

MaxONSConfiguration

The number of ONS servers that jdbc will randomly select from in the advent of a failure. Valid value is an integer

TcpConnectionTimeout

The time taken between traversals of an “ADDRESS_LIST” in the advent of a failure. Specified in seconds

ReadTimeOut

The time queries wait for results before considering that a failure has occurred. Specified in seconds

BatchUpdates

The number of inserts/updates that are grouped together to improve transaction performance. Valid value is an integer

FetchSize

Number of rows fetched on each round trip to the database. Valid value is an integer




Tags: swingbench

5 Comments

Release ofSwingbench 2.5

22/10/13 17:14

I’m pleased toannounce the release of swingbench 2.5. It has a ton of fixes and newfunctionality in it but most importantly it has full support for OracleDatabase 12c. At this stage I’m going to call it Beta but only because it’sreceived a limited amount of testing inside of Oracle. Obviously let me knowwhat you think. I’ll try and provide fixes as quickly as possible to any thingyou flag up. You can download it here .

Fixes and Enhancements include

·        Fixed a bug where the wizards struggled with some timezones.

·        Fixed a bug where the init() command wasn't calledcorrectly

·        Removed unnecessary stacktrace output when invalidcommand line parameters are used

·        Fixed an integer overflow where some stats were reportedincorrectly

·        Added normal distribution of data to better model realworld data in the OE and SH benchmarks

·        Added verbose output (-v) to the wizards when run incommand line mode to provide better feedback

·        Increased the maximum heap use by oewizard and shwizardto 2GB in size

·        Updated launch parameters for java to set min and max toavoid unnecessary memory consumption

·        Users can now define their own output date format maskfor charbench via a swingbench environment variable (see FAQ)

·        Wizards in graphical mode now display a warning beforedata generation if there isn't enough temporary space to generate indexes

·        Wizards in graphical mode now display the reason theycan't connect to the database

·        Generated data is more representative of real worldformats

·        Charts in overview now display values when moused over

·        Support of backgrounding charbench, Unix/Linux only.requires the use of both the -bg swinbench option and "&"operator

·        Fixes and improvements to error suppression

·        The maximum number of soft partitions that can bespecified is limited to 48. Values larger than this cause severe performance degradation.This is being looked into.

·        Version 2.0 of the OE benchmark is included (selectablefrom the wizard).

·        Wizards allow you to specify index, compression andpartitioning models where supported (command line and GUI)

·        All scripts and variables used by wizards are listed inthe configuration file

·        Benchmark version can be specified on the command line

·        Fixed an issue where specifying max Y values in chartswas ignored

·        Support for choosing whether commits are executed clientor server side in the SOE Benchmark -D CommitClientSide=true

·        Wizards recommend a default size for the benchmarks basedon the size of the SGA

·        The customers and supplementary_demographics table arenow range partitioned in the SH schema if the range portioned option isspecified

·        New overview chart parameter (config fileonly)  allows you specify what YValue a chart will start at

·        Wizards allow the creation of schemas with or withoutindexes

·        The sh schema now allows a partitioned or non partitionedschema

·        Updated XML infrastructure

·        Removed unneeded libraries and reduced size ofdistribution

·        Errors in transactions can now be reported via the -verrs command line option

·        Tidied up error reporting. Errors should be reportedwithout exception stacks unless running in debug mode

·        Fixed a problem where it wasn't possible to restart abenchmark run when using connection pooling

18 Comments

Using thewizards in comand line mode

15/07/13 16:21

I’ve just beenreminded that not everybody knows that you can run swingbench in command linemode to use nearly all of it’s functionality. Whilst VNC means that you can usethe graphical front end for most operations sometimes you need a little moreflexibility. One area that this is particularly useful is when you’re creatinglarge benchmark schemas for the SOE and SH benchmarks via the wizards (oewizard,shwizard). To find out what commands you can use just use the “-h” option. As you can see below there’s access to nearlyall of the parameters (and a few more) that are available in the graphical userinterface.

usage: parameters: -allindexes build all indexes for schema -bigfile usebig file tablespaces -c wizard config file -cl run in character mode-compositepart use a composite paritioning model if it exisits -compress usedefault compression model if it exists -create create benchmarks schema-cs connectring for database -dba dba username for schema creation-dbap password for schema creation -debug turn on debugging output -debugfturn on debugging output to file (debug.log) -dfdatafile name used to createschema in -drop drop benchmarks schema -dt driver type (oci|thin) -g runin graphical mode (default) -generate generate data for benchmark if available-h,--help print this message -hashpart use hash paritioning model if it exists-hcccompress use HCC compression if it exisits -nocompress don't use anydatabase compression -noindexes don't build any indexes for schema -nopartdon't use any database partitioning -normalfile use normal file tablespaces-oltpcompress use OLTP compression if it exisits -p password for benchmarkschema -part use default paritioning model if it exists -pkindexes only createprimary keys for schema -rangepart use a range paritioning model if it exisits-s run in silent mode -scale mulitiplier for default config -sp thenumber of softparitions used. Defaults to cpu count -tc the number ofthreads(parallelism) used to generate data. Defaults to cpus*2-ts tablespace to create schema in -uusername for benchmark schema -v runin verbose mode when running from command line -version version of thebenchmark to run


Using these parameters its possible to specify a complete install and dropoperation from the command line. For example

./oewizard -scale 10 -cs //oracle12c/orcl -dbap manager -ts SOE -tc 32 -nopart-u soe -p soe -cl -df /home/oracle/app/oracle/oradata/ORCL/datafile/soe.dbf
This will create a 10 GB (Data) schema using 32 threads, use no partitioningand use the soe schema.

You can drop the same schema with the following command 

./oewizard -scale 0.1 -cs //oracle12c/orcl -dbap manager -ts SOE -u soe -p soe-cl -drop

I use this approach to create lots of schemas to automate some form of testing…The following enables me to create lots of schemas o analyse how the SOEbenchmark performs as the size of the data set and index increase.

./oewizard -scale 1 -cs //oracle12c/orcl -dbap manager -ts SOE1 -tc 32 -nopart-u soe1 -p soe1 -cl -df/home/oracle/app/oracle/oradata/ORCL/datafile/soe1.dbf./oewizard -scale 5 -cs//oracle12c/orcl -dbap manager -ts SOE5 -tc 32 -nopart -u soe5 -p soe5 -cl -df/home/oracle/app/oracle/oradata/ORCL/datafile/soe5.dbf./oewizard -scale 10 -cs//oracle12c/orcl -dbap manager -ts SOE10 -tc 32 -nopart -u soe10 -p soe10 -cl-df /home/oracle/app/oracle/oradata/ORCL/datafile/soe10.dbf./oewizard -scale 20-cs //oracle12c/orcl -dbap manager -ts SOE20 -tc 32 -nopart -u soe20 -p soe20-cl -df /home/oracle/app/oracle/oradata/ORCL/datafile/soe20.dbf./oewizard-scale 40 -cs //oracle12c/orcl -dbap manager -ts SOE40 -tc 32 -nopart -u soe40-p soe40 -cl -df /home/oracle/app/oracle/oradata/ORCL/datafile/soe40.dbf./oewizard-scale 80 -cs //oracle12c/orcl -dbap manager -ts SOE80 -tc 32 -nopart -u soe80-p soe80 -cl -df /home/oracle/app/oracle/oradata/ORCL/datafile/soe80.dbf

Tags: schemaswingbenchCommand Line

2 Comments

Changing javalibraries and increasing the heap size used by swingbench

15/01/12 11:57

I’ve been askeda couple of times recently about how to change the infrastructure librariesi.e. the Oracle jdbc driver. I try to always ship the latest jdbc/ons/ucplibraries but its possible that Oracle may realease a patch set whilst I’mworking on something else. Its also possible people may want to investigate abug or performance problem by trying out a selection of drivers. To change thejar files all that is needed is to move the old version out of the libdirectory and copy the new one in, for example

$> cd swingbench$> mv lib/ojdbc6.jar ~/backup/ojdbc6.jar$> cp~/newjdbc/ojcbc6.jar lib

Don’t try and keep multiple versions of the same driver in the lib directory.It can lead to unexpected results. When swingbench starts it looks in the libdirectory for all the libraries (contained in the jar files) to use.

If you need to increase the amount of memory used by swingbench you need toedit a file called launcher.xml in the launcher directory. You might need to dothis if you are planning to run with many thousands of threads. You need tochanged the default value (1024m) to a larger one. For example


to something like


Tags: Configuration

1 Comment

New build ofswingbench 2.4

08/12/11 19:56

I’ve justuploaded a new build of swingbench with the following fixes


·        Wizard now writes output to debug.log correctly with the-debugFile option

·        Fixed bug where partitioning was always installedregardless. This meant the wizards couldn't install against a standard editiondatabase

·        Fixed a bug where swingbench wouldn't start unless allusers were able to log on. Swingbench will now start when it has logged on asmany users as it can.

·        Fixed a bug where users were incorrectly counted as beinglogged on

·        Fixed a bug where logging wasn't correctly written to adebug file

·        Changed -debugFile to -debugf to provide consistency withother tools

·        Changed to way users logged on is reported in verbosemode of charbench 

·        Updated the secure shell libraries to support Solaris 11


You can find it 
here. Let me know if you find any problems.

Tags: swingbench new release

0 Comments

2.4 makes itto stable status

08/11/11 16:02

At last I feelthat I’ve fixed enough bugs and had enough feed back to change 2.4 to stablestatus. This means that this should be the default client most groups use.Based on the feedback I get I’ll remove 2.3 from the downloads page.

There has been a few changes in this release. These include

·        Improvements to the Overviewchart to provide dynamicYXAxis and floating legends

·        The overview chart now uses a 5 second rolling window forresponse time metrics as opposed to a meaningless average

·        “Minibench” has been made a little bigger 

·        Numerous fixes to the wizards

·        Numerous fixes to Universal Connection Pooling

·        New command line options


The new Overview chart is show below


As per usual you can download it 
here

3 Comments

New Build ofswingbench 2.4

06/05/11 18:43

It’s been 2 or 3months since the last drop of swingbench and so it will come as no surprisethat I’ve released another build. This release features

·        Fix to enable the jdbc version of the SOE benchmark towork without errors. I’ll be updating it over the coming week to try and makeit as close as possible to the PL/SQL version

·        A new parameter (and UI change) to support thedisconnect/connection of sessions after a fixed number of transactions

·        Various fixes



0 Comments

New build ofswingbench 2.4

15/02/11 10:22

I’ve justuploaded a new build of swingbench 2.4 it has a number of bug fixes which sortout some of the following issues

§ Unexpected termination due to driver issues

§ Unclear timeline text on the overview chart

§ Numerous UI and java issues


You can download it 
here
Let me know if you have any problems via the 
comment page

Tags: swingbench new release

0 Comments

New build ofSwingbench

31/08/10 16:22

After a bit of a delay Im releasing a new build of swingbench. It has alarge number of fixes reflected in the difference in build numbers. Some of thechanges include

·        A new report at the end of wizard driveninstall that details the speed of the install but also whether the objects thathave been created are valid

·        A fix to clusteroverview that preventedit starting

·        A fix to the cpumonitor that preventedit from running in some instances

·        Some icon changes

·        Warning and error alerts are now firedinside of the wizard to highlight potential issues

·        Fix that prevented install logs beingsaved

·        Average response time can now be displayedin command line mode

·        Removed the required to run the wizardsin headless mode

·        Fixed numerous UCP issues

·        Many other fixes


The new report looks like this

Im hoping it should make it easier to understand if a install worked correctly.

You can download the new build 
here. As usual let me know if it hangs together.

Tags: swingbench new release

0 Comments

Minor updateto swingbench

24/05/10 15:35

I’ve just uploaded a minor update to swingbench to solve a few minor bugs.

You can download it 
here

0 Comments

And anotherupdate to 2.4...

13/05/10 20:45

Another minor update incoming to 2.4.0.639.... minor fixes. You candownload it here

0 Comments

Update toswingbench 2.4

15/04/10 21:05

I’ve updated swingbench to build 628 which includes the following fixes

·        Updates to the “order entry” benchmark

·        Wizards now use user selected threadcount

·        Swingbench now correctly loads newconfig files from the menu

·        Feedback on wizard builds (metrics suchas MB/sec generated etc)

They’ll be a new update again shortly with

·        Checks at start and end of wizard builds

·        New benchmark run summaries

As usual you can download it here. Let me now what you think here

Tags: update,swingbench

0 Comments

Large SOEbuilds... things to watch for

25/03/10 10:57

A couple of things to watch for if you are building a large SOE schema.The first is temp space. I guess its obvious but if you are building a 1TBschema with 100GB+ tables the indexes are going to be pretty big as well. Ifyou are creating big indexes you need plenty of TEMP. The number of schema’sI’ve looked at that haven’t had their indexes build is amazing. I guess this ispartly my fault as well. I’ll include a start and end validation process in thenext build. Should have done this before but I guess people weren’t buildingsuch big schema’s

As a guide line for a schema of size “x” I’d have at least “x/6” worth of tempspace i.e. 1TB schema needs about 180GB of temp. You can resize it after thebuild to what ever you decide is appropriate.

As to what it should look like on completion... well something like this
SOE@//localhost/orcl > @tables;Tables======Table Rows Blocks SizeCompression  Indexes Partitions Analyzed-------------------- --------------- ------ ----------- ------- ---------- ----------WAREHOUSES      1,000     60    1024k Disabled    2      0 < WeekORDERS     225,000  1,636     13M Disabled    5       0 < WeekINVENTORIES    924,859 10,996      87M Disabled    3      0 < WeekORDER_ITEMS     587,151  2,392     19M Disabled    3       0 <WeekPRODUCT_DESCRIPTIONS 1,000     60    1024k Disabled   2       0 < WeekLOGON      50,000   250       2M Disabled    0      0 < WeekPRODUCT_INFORMATION   1,000     60   1024k Disabled    3       0 < WeekCUSTOMERS    200,000  2,014      16M Disabled   5       0 < Week


Another really important thing is to include the SOE_MIN_CUSTOMER_ID andSOE_MAX_CUSTOMER_ID in the environment variables within the config file. Thiswill reduce the startup time of the benchmark. Follow the instructions below oredit the config file

Select the Environment Variables tab and press the  button (you’ll need to do thisfor each environment variable).



Add two Enviroment variables 

·        SOE_MIN_CUSTOMER_ID : The value equalsthe smallest customer id in the data set, usually 1

·        SOE_MAX_CUSTOMER_ID : The largerstcustomer id found in the data set


You can determine what thes values are by running a piece of SQL similar tothis when logged into the SOE schema

SELECT /*+ PARALLEL(CUSTOMERS, 8) */ MIN(customer_id) SOE_MIN_CUSTOMER_ID,MAX(customer_id) SOE_MAX_CUSTOMER_ID FROM customers

After adding the variables you should end up with something that looks similarto this





Tags: swingbench large schema indexes temp soe

0 Comments

Swingbench2.4 Beta Released

23/03/10 20:03

I may regret this but it all seems to hang togther so I’ve decided torelease 2.4 of swingbench. It dosen’t look significantly different from 2.3 butit has enough changes to warrant a point change. These include....

·        New SH wizard

·        New highly threaded benchmark builds forthe OE and SH benchmarks

·        New standard sizings for SOE and SH(1GB,10GB,100GB,1TB)

·        Improved scalability of the SOEbenchmark

·        Oracle UCP connections

·        New CPU monitor architecture (uses sshinstead of agent)

·        Update look and feel on Overview charts(more coming)

·        Configuration free install (Simplyensure Java is your path)

The first thing people are likely to notice is that you shouldn’t need toedit any files. As long as a 1.5 JVM is in your path you should just be able tostart swingbench and the wizards. I’ve also tried to tidy things up in thedirectory structure and Im giving Apache launcher a go to try and centraliseconfiguration. This may or may not work out Im already picking up a fewissues.... But let me know how you find it. 
The other big change is that I’’ve tried to standardise the benchmarks. You cannow choose between 1GB,10GB,100GB or 1TB. The thing to watch out for is thatthis refers to the raw data size. The indexes add to this quite considerably.So a 1TB will require 3.2TB of disk space. The good news is that they aremassively multi threaded now and so if you have the horse power (plenty of CPUsand IO) they should build relatively quickly (12 hours for a 1TB benchmark).
I’ve also updated the look of the overview graphs to make them a littlepunchier... I’ll be improving them still further shortly.
So now the stuff that’s a little broken....

·        Charbench’s interactive mode seems tohave cracked under the weight of all the updates. I have a fix for it but itrequires a 1.6 JVM and Im trying to figure out if I can port it to 1.5. In themean time you’ll have to use timers (-rt option) until I have a workable fix.

·        Backgrounding tasks seems to be a littlebroken as well... I hope to have a fix for this shortly.

Also the stuff thats planned but didn’t quite make it.

·        An end of run benchmark report. I’ve gotit sort of working but it’s a little awkward looking.

·        Update to coodinator controls...

·        AIX cpu monitoring... I have the code.It just needs testing.

Let me know what you think here. You can download it here.

0 Comments

New build ofswingbench

23/06/09 21:29

I’ve uploaded a new build of swingbench 422 to the website, I’d recommend upgrading to this buildits pretty stable and includes a lot of bug fixes. It includes some newfunctionality relating to specifying window sizes and positions for minibenchand clusteroverview. This means its now possible to maximise the real estateused by swingbench without having to move things around after you’ve started itup. The following example illustrates what’s possible.

./coordinator -g &sleep 2./minibench -co localhost -cm -pos 0,0 -dim500,400 -min 300 -max 800 -a -cs //node1/rac1 -g RAC1 &./minibench -colocalhost -cm -pos 500,0 -dim 500,400 -min 300 -max 800 -a -cs //node2/rac2 -gRAC2 &./minibench -co localhost -cm -pos 0,400 -dim 500,400 -min 300 -max800 -a -cs //node3/rac3 -g RAC3 &./minibench -co localhost -cm -pos 500,400-dim 500,400 -min 300 -max 800 -a -cs //node4/rac4 -g RAC4 &sleep2./clusteroverview -pos 1000,0 -dim 400,800


This script start swingbench in graphical mode, sleeps to let it start, thenstarts 4 minibenches at different postions on the screen. The new “-cm”maximises minibench’s charts. The rest of the parameters describe what databasethey are connecting to and what load group they are in. The script then sleepsfor 2 seconds before starting clusteroverview in a specific position. You end upwith some thing that looks like this



Hope you find this useful. I intend to shortly publish a new webcast on how toset up and use clusteroverview.

0 Comments

NewDatagenerator Screencast

29/05/09 16:23

I’ve uploaded a datagenerator screen cast here that explains its functionality andprovides a quick walkthrough. Let me know if its useful.

0 Comments

NewSwingbench Screencast

24/04/09 20:06

I’ve just uploaded a new screen cast on defining your own transactions,I get asked a lot of questions about it. I’ve also updated the website toenable me to do more of them quicker. I enjoy doing them I hope they help you.

0 Comments

Happy NewYear... and a fix to datagenerator

09/01/09 19:02

Sorry for the delay... My DSL router has been bust for the last week andso Im behind in everything. 

So first things first.... Happy new year.

Second I’ve uploaded a new build of datagenerator it appears that I had abroken link in the last build. This new version fixes a few minor bugs withdates. You can find it in the usual place 
here

Thirdly stick with me over the coming months I’ve got a big workload (my properjob) on at present and Im going to have to squeeze everything else in when Ican. So this means delays in bug fixes and doc. Sorry.

Dom

0 Comments

DatageneratorFix

19/12/08 11:20

I’ve updated datagenerator to fix a few bugs, improve the perfromance andgive a little more feedback when running from the commandline. You can find itin the usual place.

0 Comments

Brokenclusteroverview in later builds

17/10/08 17:43

It appears that I’ve broken some of the functionality in clusteroverviewin the latest builds... In particular the scalability portion and the reportingof CPU.

I’ll fix this and get a new build out ASAP.

Apologies 

Dom

0 Comments

Flash versionof the screencast now available

05/10/08 15:49

I’ve just upload a flash version of the walkthrough screencast. Hope thishelps the Linux users.

0 Comments

New builds ofswingbench and datagenerator

01/10/08 16:38

I’ve uploaded new builds of swingbench and datagenerator to fix a fewniggly bugs. You can download them from here

0 Comments

NewSwingbench Screencast

01/10/08 16:36

Ive added a new swingbench screencast which is a complete walkthrough fromthe installation of swingbench to the running of a benchmark. I’ve alsoprovided a commentary. So if you ever wondered what I sound like try itout here

0 Comments

Datagenerator0.4

02/09/08 20:09

I've uploaded anew build of datagenerator. New features include 

·        Support for indexes and sequences

·        New command line options

·        Better multi threading support

·        New scaleable data builds

·        Number generators can reference rowcounts from other tables

·        Better database performance

·        Ability to generate only the DDL of aschema

·        Numerous bug fixes


The new build can be downloaded 
here

I’ve also updated the install, and added some additional walk throughs (in theswingbench section)

Lets go through some of the new features in a little more detail.

Indexes and Sequences


You can now include indexes and sequences inside of a datagenerator definition

This makes it easy to build an entire schema for a benchmark run removing theneed to run additional scripts afterwards. Currently I don't support theirreverse engineering but that will come. 

Better multithreading support


Previously it was possible to specify multiple threads for a datageneration runbut each table was allocated a single thread. In this version a user can softpartition a table and hence break the build into smaller units which can eachhave a thread allocated to them.

This means that if you have a 32 CPU server you'll be able to build a 10billion row table much faster if you soft partition the table into 32 units andallocate 32 threads for the build. The partition key can be either a date ornumber. This is also useful to avoid resource contention when inserting datainto a partitioned table.

New command line options


Its now possible to run the entire data generation to file or database from thecommand line. These include
[dgiles@macbookbin]$ ./datagenerator -h
usage: parameters:
-async perform async commits
-bs batch size of inserts (defaults to 50)
-c specify config file
-cl use command line interface
-commit number of inserts between commits
-cs connectring for database insertion
-d output directory (defaults to "data")
-db write data direct to database
-ddl just generate the ddl to be used
-debug turn on debug information
-dt driver type (oci|thin)
-f write data to file
-g use graphical user interface
-h,--help print this message
-ni don't create any indexes after data creation
-nodrop don't drop tables if they exist
-p password for database insertion
-s run silent
-scale mulitiplier for default config
-tc number of generation threads (defaults to 2)
-u username for database insertion
-z compress the results file


Scaleable data builds


The config files for the soe and sh schema are now by default configuredfor a 1GB build. These can be scaled up by using the -scale option. To build a100GB sh schema the following command can be used.

./datagenerator-c sh.xml -cl -scale 100

This functionality is supplemented by a new flag on a table definition.


Only tables with this flag enabled will be scaled up.

Referenceable row counts


It is now possible to use the row count of a table as the maximum value of anumber generator. This is useful when scaling up/down a datageneration andmaintaining data coverage and referential integrity.



As the number of rows in the referenced table increase so does the the maximumvalue of the data generator.

Better database performance


This build supports the use of asynchronous commits. This results inperformance increases of about 10-30% when this option is enabled. I’ve alsoundergone several database 

Generate only DDL


It is sometimes useful to only create the DDL that will used to create tablesand indexes.



The files that are created can be edited and modified to include additionalinformation such as storage definitions.

0 Comments

New build andfixes in swingbench

22/07/08 12:29

I've uploaded a new build of swingbench which includes a number of fixes(one that broke charbench). Apologies for this. I thought I released the fixesif the previous build. You can find it here.

As usual let me know if you find obvious bugs.

0 Comments

Minor updateto datagenerator

29/03/08 11:01

Just a minor update to datagenerator to fix some scripts and config files.There's also a few fixes to the code.

0 Comments

Swingbenchwith AWR support

25/03/08 21:25

Im uploading a new build of swingbench that includes support forperforming AWR snaps at the start and end of of a benchmark run.



This is a common request and automates a task that a lot of people do. I'vealso included a new section in the stats that are generated which lists the top10 (11 to be exact if you include CPU) wait events for a run if you choose tocollect database statistics.

I've had a lot of requests about 9i support in swingbench which I appear tohave broken. Can you let me know if you still think this is important (I guessits implied by the requests I've had). I need to know whether to focus on thisof finish the 2.3 doc.

I'd also appreciate if you could let me know if the wait events I report are inline with the stats you get from ARW... if they're not its down to me not AWR.

Thanks...

1 Comment

New build ofswingbench 2.3

12/02/08 12:22

I know things have been a little slow of late in terms of the releases ofcode but I've just had too much on both at work and at home. The good news isthat I've found time to squeeze in a new build of swingbench. This has a numberof bug fixes in and the following new functionality.

·        Clusteroverview now uses the groupIDattribute to determine members of a load generation group. This provides a lotmore flexibility for clusteroverview to be used to test technologies such asOracle Dataguard

·        The output from the command line option-v can now be directed to a named file with the -vo option


I've also included a walk through of how to set up clusteroverview in 2.3 withthe new GroupID functionality, you can find it 
here.

Any problems report them through the usual channels...

0 Comments

Lets try thatagain

15/11/07 20:25

Apologies....

I've uploaded a new build with some of the fixes I thought I included in mylast update .

You can download it 
here.

And I really have started the documentation..... Expect a first cut shortly.

0 Comments

New build ofswingbench (Build 341)

13/11/07 12:03

Okay... Whilst this is mostly a bug fix release.... and thanks for thosewho are sending them in.... more welcome 

I introduced two new piece's of functionality eek.... sorry.

The first enables to choose which charts to display in the overview chart. Itcan only currently be enabled by editing the config file. (Im not going tochange the UI any further in this build). To enable it simply save any configfile and edit the file... There's a new xml list in the Preferences sectionwhich should look like


      
<OverviewCharts>
         <OverviewChart>
            <Name>Disk</Name>
           <MaximumValue>2.147483647E9</MaximumValue>
         </OverviewChart>
         <OverviewChart>
            <Name>CPU</Name>
            <MaximumValue>2.147483647E9</MaximumValue>
         </OverviewChart>
         <OverviewChart>
            <Name>ResponseTime</Name>
           <MaximumValue>2.147483647E9</MaximumValue>
         </OverviewChart>
         <OverviewChart>
            <Name>Transactions PerSecond</Name>
           <MaximumValue>2.147483647E9</MaximumValue>
         </OverviewChart>
         <OverviewChart>
            <Name>Transactions PerMinute</Name>
           <MaximumValue>2.147483647E9</MaximumValue>
         </OverviewChart>
      </OverviewCharts>


You can edit the list and include only the ones you want to show, optionallyincluding a maximum value. ie.


     <OverviewCharts>
         <OverviewChart>
            <Name>CPU</Name>
         </OverviewChart>
         <OverviewChart>
            <Name>Transactions PerSecond</Name>
           <MaximumValue>200</MaximumValue>
         </OverviewChart>
      </OverviewCharts>


The second change allows you to specify non autoscaling charts with maximumvalues inside of clusteroverview. This again needs to be edit inside of theclusteroverview.xml file


 <DisplayedCharts>
  <DisplayedChart>
  <ChartName>Overview</ChartName>
  </DisplayedChart>
  <DisplayedChart>
  <ChartName>UserConnections</ChartName>
   <Autoscale>false</Autoscale>
  <MaximumValue>50</MaximumValue>
  </DisplayedChart>
  <DisplayedChart>
  <ChartName>ControlPanel</ChartName>
  </DisplayedChart>
 </DisplayedCharts>


Im hoping the pain of a final (I promise) change will make things simpler forclusteroverview.

I've fixed a few further bugs as well. Some unhandled exceptions and thingslike the charts being grey in the overview chart when they clearly should havebeen white (shouldn't they?)

 

You can download it 
here

0 Comments

Turning onDebugging

29/10/07 12:28

Sometimes things go wrong... Sometime I make mistakes... I admit it.

To help me clear up those little issues debug information is essential...Previously to obtain this data you needed to edit the start up file. To simplifythis process I've included a -debug option for the command line. So if youencounter some strange behavior, try turning this on first... Who knows it maysolve the problem. if it still isn't obvious copy the text and contact me...I'll do my best to sort it out.

0 Comments

New build ofdatagenerator

29/10/07 12:22

I've uploaded anew build of datagenerator. This build has a few new features

·        A logging window during the generationphase that should make it easier to see what's going on

·        TimesTen support for datageneration (Noreverse engineering at present)

·        Ability to turn on debugging from thecommand line (-debug)


Let me know if you encounter any problems via the 
comments page 

0 Comments

Candidatebuild of Swingbench 2.3

19/10/07 23:24

I think Im getting close to a final version of swingbench 2.3. I've fixedtens of annoying bugs and have started testing(!!!). I've even started the 2.3doc. Things are very busy at work so stick with me. I could really do withpeople sending me in bugs in this build. The more bugs the faster I'll fix themand the quicker the final build will make it through the door. This buildfeatures

·        TimesTen support for the jdbc orderentry benchmark (requires datagenerator)

·        New log window for wizards

·        Numerous fixes

·        Fixes to orderentry benchmark

 

·        These will be the last enhancements.Only bug fixes from here on in.

·        Please provide feedback via the comments page or email me directly.

0 Comments

New versionof TraceAnalyzer 0.1 build 99

18/09/07 22:49

Just finished a new build of TraceAnalyzer... I've uploaded it to thedownloads page.



New features include

·        Support for 10046 traces

·        Bind parameters

·        Explain Plans

·        Wait Events

·        Formatting of SQL

It has few issues... the capture of bind values is a little flakey....still trying to get my head around some of the parsing. I'll try and fix a fewof the more obvious issues of the coming weeks...

0 Comments

New releaseof swingbench, build 273

05/09/07 14:43

I hadn't realised its been over 4 months since I released a build of swingbench.So here it is. Just a few things

·        I changed the format of the config fileagain... Sorry.... Im almost certain this will be the last change

·        The default chart is now overviewalthough this can be changed in the preferences section

·        The test connection button works forOracle but sadly not for TimesTen yet. I'll get this fixed shortly

·        Loads of minor fixes

Let me know if you have any problems here or on the comments page.

New build of Trace Analyzer nearly done as well.

0 Comments

Fix for 2.2of swingbench

29/06/07 14:14

I managed to break minibench in my last update of swingbench 2.2. I'veuploaded a new build and taken advantage of the opportunity to refresh thelibraries. Sadly this will mandate 1.5 as the new JVM. Apologies if this causesany inconvenience.

0 Comments

New Viewletsand Presentation

09/06/07 21:16

I've just added a pdf containingan overview presentation of Swingbench here. I've also uploaded some viewlets to give you a feel for howSwingbench looks in 2.2 and and 2.3. Expect more soon.

Thanks to everyone that attended the RAC SIG webseminar

0 Comments

The RAC SIGon the 7th June

05/06/07 13:23

Just a quick reminder. I'll be doing a presentation to the RAC SIG on the7th of June starting at 9am Pacific Time.

http://www.oracleracsig.org

I'll be giving an overview of swingbench, showing the various components andwhat it can be used for. I'll also give a demo of the new 2.3 version ofswingbench and what will make it into the production build. With a bit of luckI'll also find time to answer questions...

I was also hoping that I could include a few of your stories whether positiveor negative... So if you have any feedback you'd like to include drop me a linethrough the comments page.

Thanks

Dom

0 Comments

More fixesfor datagenerator

09/05/07 16:43

Fixes include

• All menus now working
• Added sizing wizard to menu
• New Column wizard for DB sampler
• lots of other minor fixes
• zip file is now version numbered.

Let me know if this helps

0 Comments

Presentationto the US RAC SIG

09/04/07 20:34

I'll be doing a webcast on swingbench to the US RAC SIG on June 4th. Ibelieve it will be starting at 9.30 PT (check the web sit for confirmation). Ihope to detail what swingbench is capable of, the best practices when usingswingbench and what I'll be doing next. I think Im suppose to be answeringquestions as well so you'll get a chance to have ago at me for all thoseannoying bugs....

So if your interested join in and I'll do my best to keep it informative andentertaining.

Dom.

0 Comments

Sometimes weall make mistakes...

02/04/07 11:52

Its not easy keeping an idea on all aspects of swingbench and sometimes Ilet stuff get through that really shouldn't. I try my best. I made a amateurishmistake on sequence numbers in the order entry bench. I've uploaded a new buildof 2.2 which I'll include in the new 2.3 build shortly. If you find theseannoying little bugs or potentially big issues drop me a line and I'll do mybest to put it right.

0 Comments

A littlecoordinator/cpumonitor issue

21/03/07 08:31

I ran into this issue just recently. I couldn't get swingbench to talk tothe coordinator and sadly the large RMI stack traces didn't explain it verywell. It turns out that Java RMI expects the hostname and hostname.domain inthe /etc/hosts file to be on a separate line to the 127.0.0.1 localhost entryi.e. on the second line.

For example change

127.0.0.1 localhost localhost.localdomain saturn saturn.planets

to

127.0.0.1 localhost localhost.localdomain
10.211.55.4 saturn saturn.planets

Making this simple modification gets everything working as expected. Thisproblem is common in a DHCP environment (not ideal for benchmarking) where youacquire ip address and potentially hostnames dynamincally. Its good practice tokeep them on separate lines anyway.

0 Comments

TimesTen Fix

02/01/07 14:30

I know I had promised an update of the front end to swingbench in my nextrelease however its been pointed out to me that I managed to break my TimesTensupport in one of the earlier releases. I've just uploaded a new build thatshould fix these issues. I've also uploaded a simple TimesTen walkthrough. Itcan be found here

0 Comments

Trace Analyzer

13/11/06 20:21

So I haven't released much in the way of an update to swingbench latelymainly because work has been so busy...

However between meetings I put together a little program that parses Oracletrace files. Now I know TKProf does a fine job of this but I've never beenreally comfortable with having to continually rerun TKProf to change theordering and filter out classes of statements. This came to a head justrecently after looking through a big trace file and trying to figure out what SQLto work on first. I also thought that perhaps I could use a richer userinterface to give a better overview on what has happened a particular run. So Istarted with the intention of figuring out how to parse the file and come upwith some ideas on what to with the results... This turned out to be prettytrivial because of its structure and Java's regular expression support. Withthat taking much less time than expected I put them into a Java Swing JTablejust to verify the results, which lead on to the next thing and then thenext.... Needless to say the code is far from perfect but it does give a feelas to what could be achieved. If there is no interest I'll stop now and go backto finishing swingbench 2.3.

So In summary what does it do
• Parse trace files.
• Profile the data via a bar of the right had side of the scroll bar.
• Supports dynamic filtering and sorting of the data.
• Highlight the 5 worst performing pieces of SQL (elpased, cpu, physical etc)

What I'd like to add to it
• highlight concurrent SQL
• Explain Plans
• Display bind variables
• dump sql to flat files
• generate load files for swingbench 

However unless theirs interest I probably won't bother..

You can download the code 
here

Leave your comments 
here.

0 Comments

Performancefix for datagenerator

16/10/06 19:56

Apologies for those that have already downloaded swingbench. I managed toengineer a bug into the latest build... I removed code responsible for arraybinding on inserts into the database. I've put it back in and, as you mightexpect, makes a significant difference to this new functionality. In the nextcouple of days I intend to document some simple findings illustrating thedifference between the two approaches.

0 Comments

New build ofdatagenerator

13/10/06 20:20

I've uploaded the latest build of datagenerator. New features include

·        User definable number of threads

 

·        Data insertion directly into thedatabase (Oracle)

 

·        Ordered generation of data (largestfirst)

 

·        Lots and lots of small bug fixes

 

Apologies for not updating swingbench recently but I've been strugglingwith the amount of "proper" work at the moment. I'll try and findsome time over the next few week to include the updates I promised. Let me knowif you encounter any problems in the code... now is the time to get them fixed.

0 Comments

New build ofswingbench 2.3, build 144

14/09/06 23:10

I've just uploaded a build of new swingbench. This fixes a whole load ofinternal bugs that shouldn't have been that obvious to most people. This shouldbe the last before I release the changes to the front end. This hopefullyshould allow all swingbench parameters to be maintained from a graphical frontend.

0 Comments

Fix for DSSbenchmark

30/08/06 17:03

I've included a fix for the DSS benchmark. The code used to label modulesfor services opened cursors without closing them properly. This prevented thebenchmark from running for any period of time.

0 Comments

Fix fortimezone support in datagenerator

30/08/06 17:00

I've included a fix for datagenerator that allows it to load the soe.xmland sh.xml file regardless of timezone the user is running in. I've alsochanged the default config file to a simple version to try and prevent thisproblem happening in the future.

0 Comments

Icon design

12/08/06 18:39

One of theproblems when buiding a bespoke application is that you can never find a iconthat reperesents exactly the action you need. Sure there are hundreds of siteson web that have "free" icons but these tend to be designed for thedesktop. You can sometimes find sets that look very professional and you'd beproud to have them in your application. However you still have the issue thatyou don't only need icons to represent "file open" or "deleterecord" but also ones to represent the new action that is going make yourapplication a best seller and the last think you need is a icon that sticks outlike an ugly sore thumb.

So your left with a couple of choices. Go ahead and build that expensive iconset and hope that no one notices your child like attempts at graphic design. Orbite the bullet and commit your self to buiding the whole set your self. Nowthis not something you should attempt if you have no artistic aptitude or areshort of patience. To be fair I've always been interested in graphic design buthave never had the inclination or need to commit to buiding my own icon set.That was until I started working on datagenerator and swingbench. Im a one manteam and I know many of you will be questioing the sense in spending timeworking on icons when it could better be invested in fixing bugs or working onnew features, however one of my objectives when I started working on thesprojects was to touch on a number of disciplines that my day to day job (coredatabase) doesn't allow.

So once you've committed yourself to building your own bespoke set what toolsdo you use. Well theres no shortage of tools from bespoke icon editors to topend tools such as Adobe Illustrator and Photoshop, Paintshop pro etc. I've shydaway from icon editors in the past simply because I find them to restrictive.You find yourself spending to much time trying reproduce effects such asshadows and gradients which are pretty much the defacto standard on a moderndesktop. I use two platforms these days, My Apple iMac and a Linux notebook. IfI was designing icons and other graphics for a living I would invest the bigbucks for a product like Adobe Illustrator... I wouldn't even hesitate, from mylimited experience nothing comes close, however I dont do this for a living andit doesn't make any sense to spend a couple of thousand pounds for a dozenicons (although if someone has a spare license lying around...).

Luckily the open source market has a number of alternatives that provide aviable alternative. i dont have the time to list the various projects buildingsuperb tools to compete with the various commercial offerings but two standout. The Gimp (worth using just to shout accross the office "I working onthe Gimp") and Inkscape. The Gimp is primarily used as a raster or digitalpaint tool as is comaparable to Adobe Photoshop. Inkscape is a vector painttool and is comparable to Adobe illustrator in terms of use if notfunctionality, it also has the added benefit of working directly in SVG.Working in a scalable format, such as SVG, is a real asset to icon design itmeans you can work on a large scale and then shrink or enlarge your design withvery little loss in quality.

So Ive comitted to Inkscape and Im very impressed so far. It appears rocksolid, has ports for MacOS and Linux, has tools for viewing your designs asthey would appear as icons and has some genuinely inovative features. Howeverit does have some flaws.... The documentation is very weak, some of thedialogues are confusing at best and its not a native port to MacOS (that reallywould set the cat amongst the pigeons).

That set Ive started work and its pretty straight forward to put together someconsistent icons. Ill post the results shortly... don't laugh 

0 Comments

New build ofdatagenerator

07/08/06 20:28

I've uploaded a new build of datagenerator (46). The update to this buildis primarily to include new debug code to try and diagnose a issue with readingthe default config files shipped with datagenerator. This prevents users fromreading the data inside of the xml file. This appears to be a national languageissue since the data is shipped in UK format. If you have this issue, uncommentthe debug line in the shell script or bat file that starts datagenerator andpost the output to me via the comments page.

0 Comments

MinorSwingbench update to 2.3, build 125

20/07/06 21:14

Hi just a minor patch update to fix a few minor updates. Yup I do makechanges based on feedback. Thats assuming I have time... Things are slowingdown just a little at work as people head off on holiday so Im hoping to get2.3 finished soon.. just the UI changes now... I'll be at Oracle HQ in the USnext week so Im not likely to be able to respond to much email. For any of mywork colleagues that need to get in touch I'll be on the mobile... 
Back to the minor fixes

·        Sorted out the save, save buttons sothey should work as expected.

 

·        Now a Transactions per second option forcharbench(if this is useful I'll include it inside of swingbench and minibench)

 

·        Benchmark name now include on windowtitle for swingbench

 

 

0 Comments

DSS benchmarkuploaded

17/07/06 20:29

I've just uploaded a new build of swingbench and datagenerator to thewebsite. They can be downloaded here. The reason forthe joint release is that they both provide support for a new DSS benchmark.I've described how to install and run the benchmark here. The benchmark still needs work and testing to determine some standardmetrics but it hangs together. Let me know what you think here.

0 Comments

New DSSbenchmark available (or nearly).

07/07/06 20:33

Over the last few days I've been putting together swingbench's first DSSbenchmark. It uses datagenerator to create the schema and then a new config file to generate theload. The only reason I haven't posted it yet is that our cluster is currentlyin pieces and is slowly being put back together so I'haven't had a chance totest it on a large scale machine. Im certain of a few things. It should eat I/Oand CPU. I haven't included any materialized views to improve perfomance simplybecause in the past I've been asked for a benchmark to test the I/O sub system,I think this is it. It currently needs a little work to get it to scale tolarge sizes but I'll post instructions. The ultimate aim is to deliver threesizes 100GB, 500GB and 1TB. There's no reason why they couldn't be bigger itsjust that I'll lack the resource to test it. If you'd like to give it a spindrop me a line and I'll send you the code. Regardless I hope to post the codeby the end of the week.

0 Comments

Datageneratorupdate to build 31

27/06/06 20:29

I've been slowly rounding off some of the rough edges in datagenerator. Inthis release I've fixed a few bugs and provided a wizard to size tables up in asimpler fashion (hint its the new button on the tool bar). I've also includedthe ability to store data in side of the config file. This is really useful ifyou have to take reference data from a reversed engineered schema. To demonstratethis I reverse engineered the oracle "sales history" schema andincluded the reference data for "TIMES","PRODUCTS" etc. Thewhole schema including reference data can now be shipped in a single file. I'veincluded this file in this build (sh.xml in bin/winbin directory). This meansyou should be able to generate a multi terabyte "sh" schema.... Thisfunctionality will fome the basis of a new DSS benchmark in the next few weeksfor swingbench. Let me know if you encounter any problems.

Oh and I fixed a stupid scripting bug the windows bat file to lauchdatagenerator...

0 Comments

Swingbenchupdate to build 117

27/06/06 20:16

Nothing amazingly new in this build other than some fixes. These relate to

 

·        Opening new config files left the oldconfiguration in memory

 

·        The default config in windows wasinvalid (and no one mailed me... shame)

 

·        Fix to work around an Oracle connectionpooling bug

 

·        No reports generated unless a Systemusername/password was included in the config file

 

Im currently working on, mostly in my spare time, the creation of a swingbenchDSS benchmark and the update of the UI to support all of the parameterscurrently hidden in the config file. Let me know if you encounter problems withthis build.

0 Comments

IllegalMonitorStateException in Datagenerator on Itanium.

18/05/06 20:29

I've encountered a weird bug... not sure if its my fault or the the JVMs.Basically when running the latest version of datagenerator on a multi CPUItanium box I get this exception thrown after a (seemingly random) period oftime. This only happens on an Itanium machine. The other variable here is thatbecause its Itanium I have to use the JRockit 1.5 JVM. The code seems to workfine on every other multi CPU environment I've tried... Has anyone else hadthis problem?

0 Comments

Walkthroughfor datagenerator available

12/04/06 21:24

I've just published a walkthrough for datagenerator here. It should help in figuring out what datagenerator is capable of. Thiswill probably be the way I publish all documents in the future...

0 Comments

Minor updateto Datagenerator

06/04/06 20:32

I've fixed a few minor issues with the build I put up last night. The newrelease has a build number to enable you to more easily track what's new. Ialso fixed a minor bug with the environment variables in the windows build.

0 Comments

Datagenerator0.3 release

05/04/06 22:08

I've just uploaded datagenerator 0.3 to the downloads page. Its a big step forward. Apart from being multithreaded andgenerally much faster it includes a wizard that allows you to reverse engineera schema... currently it only reverse engineers the tables and primary keys butI'll include more functionality over time. I've used it to build vey largeschemas for the order entry benchmark much faster than I was perviously ableto. In the next couple of days I'll post a script and instruction on how to dothis.. In the mean time enjoy

0 Comments

Update toSwingbench 2.3 Beta

14/03/06 19:55

Further fixes for connection pooling and new support for the order entryschema to be build without partitioning.

0 Comments

Swingbench2.3 Beta available

08/03/06 22:30

I've just posted swingbench 2.3 to the downloads page. This build still needs some work but it has some genuinelyuseful features.

These include

·        Update to frontend of"minibench"

 

·        New simple "Stress Test"benchmark for both Oracle and TimesTen

 

·        TimesTen support

 

·        User defineable length of benchmark run

 

·        Better statistics in reports output

 

·        Benchmark comparison tool

 

·        Improved connection pooling and fANsupport (via swingconfig file only)

 

·        Minor changes to swingconfig.xml

 

·        Build numbers for each release

 

·        User selectable timings i.e.measurements in seconds, centiseconds, millseconds, microseconds etc.

 

The new runtime functionality and bmcompare utility allow for largecomplex benchmark runs and comparisons between individual runs. The newminibench UI provides a richer experience for those wishing to run theswingbench environment in graphical mode but without the overhead of the fullblown interface.

Documentation (online and pdf) to follow shortly.

0 Comments

BMCompare

23/02/06 20:19

Swingbench 2.3 should be ready shortly features a new tool calledbmcompare which allows you to compare runs of benchmarks... Its pretty simplycurrently but I like it. Its simplifies the job of brining all of the datatogether. It will be especially useful for some of the users of swingbench howuse swingbench as a regression test tool.

0 Comments

So whats newin Swingbench 2.3

15/02/06 20:08

I've been putting the final touches on the 2.3 release of swingbench. Sofar the features that have made it in are

 

·        TimesTen support

 

·        Timer support. This allows you to runthe benchmark for a given time

 

·        User selectable timings i.e.measurements in seconds, centiseconds, millseconds, microseconds etc.

 

·        Code modification to support 1.5

 


Im still also hoping to include a utility that will provide side by sidecomparison of benchmark runs. For example this will allow you to run sixbenchmarks and compare the differences between each one. So you could increasethe user count by 50 percent each run and then determine what difference thismakes to the server. It will be pretty simple at first but Im hoping it willbecome more sophisticated over time.

Things that aren't likely to make it but will be in 2.4

 

·        Data warehosuing benchmark

 

·        Update to clusteroverview

 

0 Comments

Update toSwingbench to support 1.4 JVM

25/01/06 23:02

Apologies but I've posted another minor change to swingbench to supportthe 1.4 JVM. You should only download a new build if you don't have access to a1.5 JVM.

0 Comments

What next forswingbench?

20/01/06 22:51

Im at a sort of a crossroads with swingbench and Id like some feedback onwhat course I should follow next. There are a number of features I've beenpromising for a while

 

·        A new data warehousing benchmark, thisalso requires I get datagenerator into a more complete state.

 

·        Better multiple load generator support,clusteroverview hasn't really received much attention in the recent pointreleases

 

·        Better reporting, I've always planned tointegrate a mini statspack so that each run results in a more complete breakdown on not just the results but what happened to the database

 

·        A html front end, I could do this eitherby integrating it into Enterprise manager (not as hard as you think) or writinga bespoke JSP front end.

 

·        HTTP load generation support, I've beenpromising this for a while and have written the engine and have nearly got thecode in a state where I could drop it in. But I've a feeling the market is awash with HTTP load generators.

 

·        None of the above and just tighten upthe code.

 


If you have strong feelings on any of these drop me a 
comment.

0 Comments

Minor updateto swingbench 2.2

11/01/06 20:27

I've just updated swingbench 2.2 with a few minor bug fixes.. It sortedout one or two issues with the wizards used to create the benchmark schemas.

0 Comments

Swingbench2.2 is now production

19/12/05 22:28

After finding a few spare hours I believe that 2.2 is now ready to beconsidered stable.... There are a few non serious few bugs but I'll fix thoseas I find time. Let me know what you think...

0 Comments

J2SE 5.0 andSwingbench

15/12/05 19:57

I've begun looking at the internal of the swingbench code. Its notmassively complicated but it is a little opaque. Its was written a long timeago when many of Java's constructs were new to a hardened C programmer. Imslowly going through the code and tidying it up, for valid reasons which I'llcome to in a second. However it has given me the chance to use thefunctionality offered in J2SE 5.0 primarily enumerators and generics. Thesetidy up the code a lot and make it almost readable. Its also made me moredetermined to re-factor the code and make it much cleaner and modular.

The reason Im migrating to J2SE 5.0 is purely to support Oracle's new in memorydatabase TimesTen. To measure its response time accurately I need microsecondtimings. Since J2SE 5.0 offers nano second timing support where the platformsupports it it made sense to do it all in one go. Sadly its a much biggermodification than I indented since it effects most of the code base. Still itsproving interesting. Expect TimesTen support in a build almost immediatelyafter 2.2 goes production.

0 Comments

SwingbenchVersion 2.2 (release candidate)

05/12/05 12:31

Swingbench version 2.1h is now 2.2. Im certain I've included enough newfunctionality to justify this change. Over the last week or so I've managed toadd a whole raft of new features and fixes that should simplify its use. Therewon't be any new features in this current release just bug fixes. The intentionis to have it stable and the doc finished by the end of December. I've alsoupdated the swingbench manual, I'll update clusteroverview's doc shortly. So insummary new in 2.2...
New in 2.2

 

·        A new lightweight graphical load generatorcalled "minibench"

 

·        The coordinator now has a number ofcommand line options (start, stop, status, run, halt)

 

·        The coordinator can now be run in ethergraphical or character mode

 

·        The charting engine now uses Oracle'sBIBeans graphing technology

 

·        Better exception handling and errormessages in both swingbench and clusteroverview

 

·        Users can now turn off jumping to theevents panel in swingbench

 

·        The user chart in clusteroverview nowallows users to specify monitored users

 

·        Swingbench can logon/logoff usersbetween transactions (experimental)

 

·        Minor changes to swingconfig.xml

 

·        New Look and Feel

 

·        charbench/swingbench/minibench now havea number of command line options allowing them to override configuation filesettings. This should simplify configuration.

 

·        CPU monitor (accessible via coordinator)

 

·        charbench can now displaytransaction/cpu load in sar/vmstat like format

 

·        swingbench can now display graphicallydisplay cpu load

 

·        Lots of fixes to the benchmark installwizards

 

·        order entry benchmark can now be scaledto 100GB

 

·        CPU monitor for database nodes inclusteroverview

 

·        Simple CPU monitor in minibench

 


Still to come

 

·        Localisation support

 

·        TimesTen support

 

·        Simple generic load test

 

·        DSS benchmark

 



minibench

CPU overview

0 Comments

New releaseof DataGenerator

12/10/05 20:28

Just released a new build of Datagenerator. I've stuck a graphical frontend on it so its much easier to use now. Its never going to be amazingly fastbecause of its generic nature. What Im aiming to achieve is to allow the userto reverse engineer a schema and then "Super Size" it. The mainmodivation for this utility is to provide a benchmark for datawarehousing usingswingbench that dosn't involve downloading a terabyte of data. As to whats newin it

* New graphical front end.
* New "Enumerator" data generator type
* Some bug fixes

Not much, but things have been pretty busy at work. The implementation of thereverese engineering functionality will depend on how long I can avoid doingall of the work on swingbench I've promised people.

0 Comments

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值