Configuring Groningen for testing with Friesian
This post will explain how to configure Groningen to run optimization tests on Friesian.
Sample configuration file can be obtained from the Deployment page of Groningen wiki. However, make shure to remove all the comments, and make modifications as described below.
In order to point Groningen on Friesian, process group ID of a running Friesian instance is needed. First run Friesian either using the following command or using Eclipse as described in an earlier post.
$ java -jar target/friesian-1.0-SNAPSHOT-jar-with-dependencies.jar
Process group ID can be easly obtained using the ps command:
$ ps axjf
This should give an output such as:

The number in the third column is the PGID needed to configure Groningen. In this case, that number is 9758. Add this number to the subject_group_name in the configuration file. Note that the user field can be any desired string. Directory specified by the exp_settings_files_dir should contain a full file path. This directory will be used for storing experiment settings for jvm_arg_injector. Also, elite_count should have the value of 1 instead of 2 which is in the sample configuration file of Groningen wiki.
After these modifications the configuration file should look something like this:user: "user1"
cluster {
cluster: "localhost"
subject_group {
subject_group_name: "9758"
exp_settings_files_dir: "/home/mrkva/Groningen/groningen/my_exp_settings"
}
}
param_block {
input_log_name: "STDOUT"
number_of_executor_threads: 3
duration: 30
restart: 4
latency_weight: 100
throughput_weight: 200
memory_weight: 50000
num_crossovers: 1
mutation_prob: 0.2
stagnant_gens: 24
elite_count: 1
}
jvm_search_restriction: {
gc_mode: USE_CONC_MARK_SWEEP
}Here are the explanations for the parameters in the configuration file:- input_log_name - The basename of the subjects log file that Groningen will parse as input
- number_of_executor_threads - Number of threads that the Executor uses to monitor experimental subjects
- duration - Time in minutes that the experiments run in production
- restart - Experimental subject restart threshold used by the Executor and Validator
- latency_weight - Weight of the latency score within the hypothesizer
- throughput_weight - Weight of the throughput score within the hypothesizer
- memory_weight - Weight of the memory score within the hypothesizer
- num_crossovers - Number cross-over points for mating within hypothesizer
- mutation_prob - Mutation probability for the offsprings
- stagnant_gens - Number of stagnant generations before GA terminates.
- elite_count - Number of elite individuals in the populations for the IncrementalEvolutionEngine
- gc_mode - Garbage collector mode
Run Groningen using the following command:
$ java -jar target/groningen-1.0-SNAPSHOT-jar-with-dependencies.jar
--eventLogPrefix=groningen.log --configFileNames=proto:txtfile:my_config.txt
This will start Groningen console. It is a HTTP servlet running on port 8080 by default. To view the console open browser and enter �http://localhost:8080/� in the url bar. Click on your username and the following console should apper.

download file now