Customize Experiments - vhive-serverless/STeLLAR GitHub Wiki
Command Line Parameters
-ooutputPathFlag (default "latency-samples"): The directory path where latency samples should be written.-cconfigPathFlag (default "experiments/tests/aws/data-transfer.json"): Configuration file with experiment details.-gendpointsDirectoryPathFlag (default "endpoints"): Directory containing provider endpoints to be used.-rspecificExperimentFlag (default -1): Only run this particular experiment.-llogLevelFlag (default "info"): Select logging level.
JSON Configuration File Details
You can find examples of valid experiment configurations in the folder experiments. Below are a table and a further discussion
about the main elements of a configuration.
Experiment settings:
Sequential(defaultfalse) Boolean specifying whether to run the sub-experiments in parallel or sequentially.Provider(defaultaws) String representing the provider to be benchmarked (aws, misc. hostname).
Sub-experiment array settings:
TitleName of the directory created for the experiment.BurstsNumber of bursts (groups of simultaneous requests) which the latency profiler will trigger.BurstSizesNumber of requests to be sent in a burst. This is an array, e.g.,[1 2 3]will send bursts as such: 1, 2, 3, 1, 2, 3, etc.IATType(defaultstochastic) Whether the inter-arrival time should bedeterministic, astepfunction orstochastic(Gaussian).PayloadLengthBytesLength of the payload generated by the serverless function(s).IATSecondsSeconds to wait for in-between bursts.Function(defaultproducer-consumer) Instructs vHive-bench on which function image to use when deploying.PackageTypeCan beZip(essential for image size experiments) orImage.DesiredServiceTimesService times for the serverless function(s) to busy spin on.Parallelism(default1) Integer representing how many endpoints to use from the endpoints file for this sub-experiment.Visualization(defaultcdf) The type of visualization to create (histogram,cdf,bar,all,none).FunctionMemoryMB(default128) How much memory should the benchmarked function allocate. Note: does not do anything with vHiveDataTransferChainLength(default1) Chain length to use for this data transfer experiment. If this is 1, this will be a burstiness experiment.StorageTransfer(defaultfalse) Should the data transfer experiment use storage (e.g., S3 or minio) for the transmission?
Tool Output
Each object in the SubExperiments array of a JSON configuration file will create its own directory. Along with the title, further information appended at the end includes
memory allocated, the IAT used, and the transfer payload (if applicable).
For example, an experiment with the title 2chain will create a directory
2chain-128MB-IAT10s-10KBpayload.