Skip to content

son profile automated testing

Eduard Maas edited this page Apr 4, 2017 · 1 revision

We use an example service that that deploys a OvS userspace switch. The service package is located in the sonata examples repository: sonata-ovs-user-service-emu

  1. The service is first deployed on son-emu:
sudo python src/emuvim/examples/sonata_simple_topology.py

For first time execution, we need to initialize the son-access command to push to son-emu:

son-workspace --init
son-access config --platform_id emu --new --url http://127.0.0.1:5000 --default

Push and the deploy the service on the emulator:

son-access -p emu push --upload sonata-ovs-user-service.son 
son-access -p emu push --deploy latest
  1. In the service directory there are two example ped files:
  • ped1.yml: Fixed resource allocation and varying load -> characterize the optimized resource allocation for a specific load.
  • ped2.yml: Varying resource allocation and maximized load -> characterize the maximum load for a specific resource allocation.

In this yaml-based file, only the service-experiment fields are considered for automated test execution. Each experiment defines:

  • measurement_points : The commands which need to be executed in a specific VNF for configuration and to start the traffic load.
  • resource_limitations : The resource allocation per VNF in the service.

The metrics to be monitored are specified in a separate msd file which is referenced in the ped file:

  • input_metrics: "msd_input.yml"
  • output_metrics: "msd_output.yml" The specified metrics are exported by son-emu and cAdvisor and gathered in a Prometheus database. Additionally, these metrics can be monitored in a Grafana web gui at http://<son-emu-host>:3000
  1. The service must be pre-deployed on son-emu before the profiling is started. To start the profiling:
son-profile -c ped1.yml --no-generation  --no-display

The test results are exported to a .yml file: test_results.yml The following command will also print the measured metrics in real-time while the test is executing:

son-profile -c ped1.yml --no-generation 

Clone this wiki locally