SLOB Sustained Throughput Test: Installing SLOB
This page is part of a process for running a sustained throughput test using Oracle SLOB. If you stumbled across this by accident, you can start at the beginning here.
Now that we have a database installed and ready to go, it’s time to install the SLOB toolkit itself. As a reminder, this is available from the author Kevin Closson via his SLOB landing page.
At the time of writing, the latest version is SLOB version 2, for which there is an additional patch. [Later versions now exist here] I have already downloaded the two files from their residing place on Syncplicity and am now ready to untar them:
[oracle@server4 ~]$ ls -l total 1008 -rw-r--r-- 1 oracle oinstall 1024000 Jul 16 10:57 2013.05.05.slob2.tar -rw-r--r-- 1 oracle oinstall 6569 Jul 16 10:57 SLOB2_patch_2014.03.11.tar.gz [oracle@server4 ~]$ tar xf 2013.05.05.slob2.tar [oracle@server4 ~]$ ls -l total 1012 -rw-r--r-- 1 oracle oinstall 1024000 Jul 16 10:57 2013.05.05.slob2.tar drwxr-xr-x 6 oracle oinstall 4096 May 5 2013 SLOB -rw-r--r-- 1 oracle oinstall 6569 Jul 16 10:57 SLOB2_patch_2014.03.11.tar.gz [oracle@server4 ~]$ cd SLOB [oracle@server4 SLOB]$ tar zxf ../SLOB2_patch_2014.03.11.tar.gz [oracle@server4 SLOB]$ ls -l total 68 drwxr-xr-x 2 oracle oinstall 4096 May 4 2013 advanced_topics drwxr-xr-x 2 oracle oinstall 4096 May 3 2013 awr drwxr-xr-x 4 oracle oinstall 4096 May 5 2013 misc -rwxr-xr-x 1 oracle oinstall 3353 Jan 13 2014 procedure.sql -rw-r--r-- 1 oracle oinstall 1298 May 4 2013 README -rwxr-xr-x 1 oracle oinstall 307 Mar 11 15:30 README.bundle.2014.03.11.txt -rwxr-xr-x 1 oracle oinstall 12354 Jan 13 2014 runit.sh -rwxr-xr-x 1 oracle oinstall 7555 May 4 2013 setup.sh -rw-r--r-- 1 oracle oinstall 1155 May 2 2013 simple.ora -rw-r--r-- 1 oracle oinstall 385 May 5 2013 slob.conf -rwxr-xr-x 1 oracle oinstall 5600 Jan 13 2014 slob.sql drwxr-xr-x 2 oracle oinstall 4096 May 4 2013 wait_kit
First we have to make the wait kit which is used to kick off all of the SLOB sessions at the same time during a run:
oracle@server4 SLOB]$ cd wait_kit/ [oracle@server4 wait_kit]$ make all rm -fr *.o mywait trigger create_sem cc -c -o mywait.o mywait.c cc -o mywait mywait.o cc -c -o trigger.o trigger.c cc -o trigger trigger.o cc -c -o create_sem.o create_sem.c cc -o create_sem create_sem.o cp mywait trigger create_sem ../ rm -fr *.o [oracle@server4 wait_kit]$ cd ..
Next we need to edit the slob.conf file to use the parameters I listed on the first page. I’ll re-list them here just for good measure:
UPDATE_PCT=25 RUN_TIME=28800 WORK_LOOP=0 SCALE=1398101 WORK_UNIT=3 REDO_STRESS=LITE LOAD_PARALLEL_DEGREE=16 SHARED_DATA_MODULUS=0
The parameter LOAD_PARALLEL_DEGREE will have an affect on the time taken to load the SLOB schema with data, so set it based on the number of cores and threads you have available. My server is has two Intel Xeon E5-2470 eight-core processors with HyperThreading enabled, which means it’s a 2s16c32t machine, so I’m going to set it to 16. Be careful though, because if the PROCESSES parameter is too low, this will cause the setup script to fail. Read more about how to set the LOAD_PARALLEL_DEGREE parameter here.
We can now run the setup.sh script to create the SLOB data. You might want to temporarily increase the size of the database buffer cache before running this, to speed up the time taken to run setup.sh – but don’t forget to reset it back to 1GB afterwards.
[oracle@server4 SLOB]$ nohup ./setup.sh IOPS 96 > setup.log 2>&1 & [1] 18105 [oracle@server4 SLOB]$ tail -100f setup.log nohup: ignoring input NOTIFY: Load Parameters (slob.conf): LOAD_PARALLEL_DEGREE == 32 SCALE == 1398101 ADMIN_SQLNET_SERVICE == "" CONNECT_STRING == "/ as sysdba" NON_ADMIN_CONNECT_STRING == NOTIFY: Testing connectivity to the instance to validate slob.conf settings. NOTIFY: ./setup.sh: Successful test connection: "sqlplus -L / as sysdba" NOTIFY: Creating and loading seed table. Table created. PL/SQL procedure successfully completed. NOTIFY: Seed table loading procedure has exited. NOTIFY: Setting up user 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 NOTIFY: Waiting for background processes - Wed Jul 16 17:18:05 BST 2014 NOTIFY: Setting up user 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 NOTIFY: Waiting for background processes - Wed Jul 16 17:26:57 BST 2014 NOTIFY: Setting up user 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 NOTIFY: Waiting for background processes - Wed Jul 16 17:35:33 BST 2014 Table dropped. NOTIFY: ./setup.sh: Loading procedure complete (1709 seconds). Please check ./cr_tab_and_load.out for any errors
Running the setup.sh script creates a lot of data, so if you have capable storage you are liable to see rather a lot of bandwidth being used: At this point it’s important to check the cr_tab_and_load.out file for errors:
[oracle@server4 SLOB]$ grep ORA cr_tab_and_load.out
Looks like everything went ok. Finally – and I always forget to do this the first time round – you need to run the procedure.sql file which comes with the patch:
[oracle@server4 SLOB]$ sqlplus user1/user1 @procedure SQL*Plus: Release 11.2.0.4.0 Production on Wed Jul 16 17:51:26 2014 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options Procedure created.
If you increased the buffer cache during the run of setup.sh then at this point you need to set it back to 1GB. I also recommend disabling the resource manager at this point, which you can easily do using the script in the misc directory:
[oracle@server4 SLOB]$ sqlplus / as sysdba @misc/dis_resmgr
That’s it. SLOB is now ready for the tests to begin.
Next page: Running SLOB