A few of my friends asked me to assist them with getting up to speed with SLOB2 testings. I have decided to publish this quick blog post and give people to a few hints.
Here are some of the scripts I have used to simplify SLOB testing management for my testing efforts:
SLOB2 add ons
from Yury – the SLOB2.zip file provides a set of additional or modified scripts that I used in some of my SLOB tests.
For all the tests I will be talking about in this blog post I kept slob.conf=> UPDATE_PCT=00 to make those read only (This is to simplify the testing; it was challenging enough to interpret results without writes.) Please note that those scripts are just a small portion of the tests that I have been executing. It doesn’t represent all the sets of scripts/tests that I would recommend to run (It depends on your setup and testing goals.). In fact, as the father of the SLOB utility, Kevin Closson declares that SLOB is just a framework for your testing. It doesn’t provide a set of tests that you run to measure your system performance. The tests’ configuration is your responsibility and you are the only person who knows most of the details of your setup. (Hopefully.)
Physical IO testing
— “slob_setup_for_PIO_test_01.txt” modifications of the spfile parameters for PIO testing
— “snap_data.sh” script to collect all the results right after a test run. This script allows us to run a set of scripts in a batch mode without stopping for collecting results. (see the next script)
— “run_t22.sh” example of a test run script. It runs the tests gradually increasing readers numbers. The idea here is to run the script and collect all results later on after the set of tests is completed.
— “slob.conf” WARNING! just an example you need to adjust for your testing needs (as any of the scripts I have provided)
— “run_the_lio_test_01.txt” a command to start the test
Logical IO testing
note: the set of scripts bellow have been adjusted for a single/shared table read-only LIO testing. The size of the table (slob.conf=> SCALE= XXXX ) should be close to size of the max buffer cache you can afford in your systems.
— “run_t23.sh” kick off script with instance restart and cache warm-up code
— “runit.1.sh” – modified runit.sh script to divert all readers to 1 schema/table only
— “slob_1.sql” – modified slob.sql script for 1 schema/table only
Quick tests verification
I would strongly suggest to verify the AWR reports generated for your tests to make sure that the tests represent the ones you expected to run. Here are two quick and simple examples:
- For LIO testing: the starting point could be LIOPS and CPU time in TOP 5 Events section. LIOPS should be ~700-800k per CPU/Process, CPU should be 99% from the TOP Events. If one of the parameters doesn’t reflect expected values, then something may be wrong.
- For PIO “db file sequential read” must be in the range ~98-99.999%. If not you should fix possible issues and rerun the tests
One last warning: for some of you it could be obvious, but I have missed it during the first few runs and lost a bit of testing time because of the issue. Check cr_tab_and_load.out file each time you run ./setup.sh to create new test data. Kevin put a warning in the setup.sh. Do not ignore it!
The ./setup.sh script have the following message:
NOTIFY: ./setup.sh: Loading procedure complete (130 seconds).
Please check ./cr_tab_and_load.out for any errors
You may not be testing what you think you are.
Want to talk with an expert? Schedule a call with our team to get the conversation started.