HOWTO: Run simple experiments - ibmcb/cbtool GitHub Wiki

Running experiments

To run an experiment, just create a text file named after experiment in ~/cbtool/traces, containing the list of commands just as the ones described here. Then, execute the CLI with the --trace option (e.g., ~/cbtool/cb --soft_reset --trace traces/exp1.txt)

EXPERIMENT 1 - Just deploy single VMs (without any application running).

The following experiment file will create three VMs on an OpenStack cloud, without generating any application load on it. It is highly useful to "unit test" a) VM deployment on the cloud, b) OS resource usage collection and c) VM termination on the cloud.

cldattach osk TESTOPENSTACK
expid exp1
vmcattach all
vmclist
hostlist
vmattach db2
vmattach netclient
vmlist
waitfor 10m
vmdetach all
monextract all
clddetach
exit

EXPERIMENT 2 - Variable VM Arrival Rate

Deploy a "nullworkload" (i.e., VApp with a single VM that does nothing) to test a single host's ability to instantiate VMs arriving with an increasing higher arrival rate. Rates used a 10, 20, 50, 100 and 200 VMs/h.

cldattach osk TESTOPENSTACK
expid exp2
vmcattach all
vmclist
typealter nullworkload tinyvm_pref_host=<put the hostname here>
patternalter simplenw lifetime=7200
patternalter simplenw iait=360
aidrsattach simplenw
waitfor 1h
aidrsdetach all
waituntil AI ARRIVING=0
aidetach all
patternalter simplenw iait=180
aidrsattach simplenw
waitfor 1h
aidrsdetach all
waituntil AI ARRIVING=0
aidetach all
patternalter simplenw iait=72
aidrsattach simplenw
waitfor 1h
aidrsdetach all
waituntil AI ARRIVING=0
aidetach all
patternalter simplenw iait=36
aidrsattach simplenw
waitfor 1h
aidrsdetach all
waituntil AI ARRIVING=0
aidetach all
patternalter simplenw iait=18
aidrsattach simplenw
waitfor 1h
aidrsdetach all
waituntil AI ARRIVING=0
aidetach all
patternalter simplenw iait=9
aidrsattach simplenw
waitfor 1h
aidrsdetach all
waituntil AI ARRIVING=0
aidetach all
monextract all
clddetach
exit

EXPERIMENT 3 - Performance profile (i.e, Performance vs Load) for a single Virtual Application.

This second experiment will deploy a single DayTrader VApp on an OpenStack Cloud, and will vary the load level with a uniform distribution with load level values between 1 and 20 (simultaneous clients). It will select a new load level each 90 seconds, and will run for 5 hours.

cldattach osk TESTOPENSTACK
expid exp3
vmcattach all
vmclist
typealter ibm_daytrader load_level=uniformIXIXI1I20
typealter ibm_daytrader load_duration=90
aiattach ibm_daytrader
waitfor 5h
aidetach all
monextract all
clddetach
exit

EXPERIMENT 4 - Effect of VApp deployment (i.e., VM provisioning) on already deployed VApp.

In this experiment, we deploy a DayTrader VApp with fixed load on a single host, wait 10 minutes for the application performance to stabilize, and then deploy a second VApp on the same host. We repeat the process once again, and then remove all three VApps.

cldattach osk TESTOPENSTACK
expid exp4
vmcattach all
vmclist
typealter ibm_daytrader load_level=25
typealter ibm_daytrader client_daytrader_pref_host=<put the hostname here>
typealter ibm_daytrader db2_pref_host=<put the hostname here>
typealter ibm_daytrader was_pref_host=<put the hostname here>
aiattach ibm_daytrader
waitfor 10m
aiattach ibm_daytrader
waitfor 10m
aiattach ibm_daytrader
waitfor 10m
aidetach all
monextract all
clddetach
exit

EXPERIMENT 5 - Multiple DayTrader and Hadoop VApps

This third experiment will use a VAppS to keep generating new DayTrader and Hadoop VApps, with a specific arrival rate for each VApp Type. DayTrader VApps will arrive with an inter-arrival time according to an exponential distribution with an average of 600 seconds (with maximum and minimum values of 200 and 2000 seconds), while Hadoop VApps will arrive with an inter-arrival time according to a uniform distribution with values between 200 and 900 seconds. Also the load level of the VApp Hadoop is set to be according to a normal distribution with average 5, standard deviation 2, and maximum and minimal values 1 and 9, while the lifetime is fixed to be 7200 seconds. Finally, no more than 40 DayTrader VApps should be created, and we should wait until the number of created VApps is equal to 100, and the wait for 5 more hours.

cldattach osk TESTOPENSTACK
expid exp5
vmcattach all
vmclist
patternlist
patternshow simpledt
patternalter simpledt iait=exponentialI600IXI200I2000
patternalter simpledt max_ais=40
patternshow simpledt
patternshow simplehd
patternalter simplehd iait=uniformIXIXI200I900
typealter hadoop load_factor=2000000
typealter hadoop load_level=uniformIXIXI1I10
patternshow simplehd lifetime=7200
patternshow simplehd
aidrsattach simpledt
aidrsattach simplehd
waituntil AI ARRIVED=100
aidrsdetach all
waituntil AI ARRIVING=0
ailist
waitfor 5h
aidetach all
monextract all
clddetach
exit